国开电大《C语言程序设计》形考任务1-4答案

形考任务一

题目1

在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(  )。

[答案]A. main

题目2

C语言源程序文件的缺省扩展名为(  )。

[答案]D. c

题目3

由C语言目标文件连接而成的可执行文件的缺省扩展名为(  )。

[答案]B. exe

题目4

程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为(  )。

[答案]D. 空格或回车

题目5

每个C语言程序文件的编译错误被分为(  )。

[答案]B. 2类

题目6

不符合C语言规定的复合语句是(  )。

[答案]D. {y=10}

题目7

C语言程序中的基本功能模块为(  )。

[答案]D. 函数

题目8

在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和(  )。

[答案]C. 参数表

题目9

在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对(  )。

[答案]B. 双引号

题目10

在C语言程序中,多行注释语句使用的开始标记符为(  )。

[答案]B. /*

题目11

在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为(  )。

[答案]A. char

题目12

在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(  )。

[答案]A. 5

题目13

转义字符’\’表示的字符是(  )。

[答案]C. 反斜线

题目14

枚举类型中的每个枚举常量的值都是一个(  )。

[答案]A. 整数

题目15

运算符优先级最高的是(  )。

[答案]D. !=

题目16

设x和y均为逻辑值,则x && y为真的条件是(  )。

[答案]A. 它们均为真

题目17

设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为(  )。

[答案]C. 156

题目18

x>0 && x<=10的相反表达式为(  )。

[答案]A. x<=0 || x>10

题目19

字符串“a+b=12n”的长度为(  )。

[答案]B. 7

题目20

在下列的符号常量定义中,错误的定义语句格式为(  )。

[答案]C. const int M3 10;

题目21

C语言中的每条简单语句以分号作为结束符。

[答案]对

题目22

C语言中的每条复合语句以花括号作为结束符。

[答案]错

题目23

在C语言程序中,在行尾使用注释的开始标记符为一对单斜线字符。

[答案]对

题目24

注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/。

[答案]对

题目25

在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。

[答案]错

题目26

用于输出表达式值的标准输出函数是printf()。

[答案]对

题目27

当不需要函数返回任何值时,则需要使用保留字void作为函数的返回值类型。

[答案]对

题目28

每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error。

[答案]错

题目29

十进制数25表示成符合C语言规则的八进制数为31。

[答案]错

题目30

十进制数25表示成符合C语言规则的十六进制数为0x19。

[答案]对

题目31

在C语言中,转义字符’n’表示一个换行符。

[答案]对

题目32

执行“printf(“%c”,’F’-2);”语句后得到的输出结果为H。

[答案]错

题目33

已知字符’C’的ASCII码为67,当执行“int x=’C’+5;”语句后x的值为72。

[答案]对

题目34

假定一个枚举类型的定义为“enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为2。

[答案]错

题目35

float的类型长度为8。

[答案]错

题目36

在C语言中,常数28和3.26具有相同的数据类型。

[答案]错

题目37

若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。

[答案]对

题目38

使用const语句定义一个符号常量时,不必对它进行初始化。

[答案]错

题目39

表达式45%13的值为3。

[答案]错

题目40

假定x=5,则表达式2*x++的值为12。

[答案]错

题目41

表达式(float)25/4的值为6。

[答案]错

题目42

表达式x=x+1表示成增量表达式为++x。

[答案]对

题目43

关系表达式(x!=0)的等价表达式为(x)。

[答案]对

题目44

关系表达式x+y>5的相反表达式为x+y<=5。

[答案]对

题目45

逻辑表达式(a>b || b==5)的相反表达式为(a>b && b==5)。

[答案]错

题目46

若x=5,y=10,则x>y逻辑值为真。

[答案]错

题目47

假定x=5,则执行“a=(x?10:20);”语句后a的值为10。

[答案]对

题目48

带有随机函数的表达式rand()%20的值所在的区间范围是0~19。

[答案]对

题目49

假定x=5,则执行“y=x++;”语句后,x的值为5。

[答案]错

题目50

假定x=5,则执行“y=++x;”语句后,y的值为6。

[答案]对

 

 

形考任务 2

一、 选择题(共 20 分, 每小题 2 分)

题目1

当处理特定问题时的循环次数已知时, 通常采用的语句是( )。

[答案]a. for

题目2

在 switch 语句的每个 case 块中, 假定都是以 break 语句结束的, 则此 switch 语句容易被改写成的语句是( )。

[答案]b. if

题目3

for 语句能够被改写成的语句是( )。

[答案]d. while

题目4

下面循环语句执行结束后输出的 i 值为( )。for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break; }

[答案]b. n/2+1

题目5

在下面循环语句中, 内层循环体 S 语句的执行总次数为( )。for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;

[答案]d. n(n+1) /2

题目6

在下面的 do 循环语句中, 其循环体被执行的次数为( )。

int i=0; do i++; while(i*i<10) ;

[答案]a. 4

题目7

在下面的一维数组定义中, 有语法错误的选项是( )。

[答案]c. int a[] ;

题目8

在下面的二维数组定义中, 语法正确的选项是( )。

[答案]c. int a[] [3] ={{1, 3, 5} , {2} } ;

题目9

假定一个二维数组的定义语句为“int a[3][4]={{3, 4} , {2, 8, 6} } ; ”, 则元素 a[1][1]的值为( )。

[答案]d. 8

题目10

假定一个二维数组的定义语句为“int a[3][4]={{3, 4} , {2, 8, 6} } ; ”, 则元素 a[2][1]的值为( )。

[答案]a. 0

题目11

在执行“typedef int DataType; ” 语句后, 标识符 DataType 与保留字 int 具有完全相同的含义和作用。

[答案]对

题目12

在 switch 语句中, 每个 case 和冒号之间的表达式只能是常量。

[答案]对

题目13

为了结束本层循环类语句或 switch 语句的执行过程, 在语句体中需要使用 break 语句。

[答案]对

题目14

在程序中执行到 break 语句时, 将结束所在函数的执行过程, 返回到调用该函数的位置。

[答案]错

题目15

在程序执行完成任一个函数调用后, 将结束整个程序的执行过程, 返回到操作系统或 C 语言集成开发环境界窗口。

[答案]错

题目16

假定一维数组的定义为“char* a[8]; ”, 则该数组所含元素的个数大于 8。

[答案]错

题目17

假定二维数组的定义为“int a[3][5]; ”, 则该数组所占存储空间的字节数为 60。

[答案]对

题目18

假定二维数组的定义为“char a[M][N]; ”, 则该数组所含元素的个数为 M+N。

[答案]错

题目19

假定二维数组的定义为“double a[M][N]; ”, 则每个数组元素的行下标取值范围在 0~M-1 之间。

[答案]对

题目20

假定二维数组的定义为“double a[M][N]; ”, 则每个数组元素的列下标取值范围在 0~N 之间。

[答案]错

题目21

存储一个空字符串需要占用 0 个字节的存储空间。

[答案]错

题目22

使用“typedef char BB[10][50]; ” 语句定义标识符 BB 为含有 10 行 50 列的二维字符数组类型。

[答案]对

题目23

存储字符’ a’ 需要占用 1 个字节的存储空间。

[答案]对

题目24

空字符串的长度为 1。

[答案]错

题目25

字符串”a: \xxk\数据”的长度为 13。

[答案]错

题目26

为了存储一个长度为 n 的字符串, 所使用的字符数组的长度至少为 n+1。

[答案]对

题目27

strcmp 函数用于进行两个字符串之间的比较。

[答案]对

题目28

strcpy 函数用于把一个字符串拷贝到另一个字符数组空间中。

[答案]对

题目29

一个二维字符数组 a[10][20]能够最多存储 9 个字符串。

[答案]错

题目30

一个二维字符数组 a[10][20]能够存储的每个字符串的长度不超过 20。

[答案]错

三、 填空题: 写出下列每个程序运行后的输出结果(共 40 分, 每小题 4 分)

题目 31

#include<stdio.h>

void main()

{

int x=5;

switch(2*x-3) {

case 4: printf(“%d “,x);

case 7: printf(“%d “,2*x+1);

case 10: printf(“%d “,3*x-1); break;

default: printf(“%s”,”defaultn”);

}

}

[答案] 11 14

题目 32

#include<stdio.h>

void main() {

int i,s=0;

for(i=1;i<=5;i++) s+=i*i;

printf(“s=%dn”,s);

}

[答案] s=55

题目 33

#include<stdio.h>

void main() {

int i, s1=0, s2=0;

for(i=0;i<10;i++)

if(i%2) s1+=i; else s2+=i;

printf(“%d %dn”,s1,s2);

}

[答案]25 20

题目 34

#include<stdio.h>

void main() {

int n=6,y=1;

while(n) y*=n–;

printf(“y=%dn”,y);

}

[答案] y=720

题目 35

#include<stdio.h>

const int M=20;

void main()

{

int i,c2,c3,c5;

c2=c3=c5=0;

for(i=1; i<=M; i++) {

if(i%2==0) c2++;

if(i%3==0) c3++;

if(i%5==0) c5++;

}

printf(“%d %d %dn”,c2,c3,c5);

}

[答案] 10 6 4

题目 36

#include<stdio.h>

void main()

{

int i,s;

for(i=1,s=0;i<10;i++) {

if(i%3==0) continue;

s+=i;

}

printf(“%dn”,s);

}

[答案] 27

题目 37

#include<stdio.h>

void main() {

int a[8]={12,39,26,41,55,63,72,40};

int i, i1=0, i2=0;

for(i=0;i<8;i++)

if(a[i]%2==1) i1++; else i2++;

printf(“%d %dn”,i1,i2);

}

[答案]4 4

题目 38

#include<stdio.h>

int a[10]={4,5,6,15,20,13,12,7,8,9};

void main()

{

int i,s[4]=0;

for(i=0; i<10; i++) {

switch(a[i]%4) {

case 0: s[0]+=a[i];break;

case 1: s[1]+=a[i];break;

case 2: s[2]+=a[i];break;

default: s[3]+=a[i];break;

}

}

for(i=0; i<4; i++) printf(“%d “,s[i]);

}

[答案] 44 27 6 22

题目 39

#include<stdio.h>

void main() {

char a[]=”abcdbfbgacd”;

int i1=0, i2=0, i=0;

while(a[i]) {

if(a[i]==’a’) i1++;

if(a[i]==’b’) i2++;

i++;

}

printf(“%d %d %dn”,i1,i2,i);

}

[答案] 2 3 11

题目 40

#include<stdio.h>

void main() {

int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}};

int m=a[0][0];

int i,j;

for(i=0; i<3; i++)

for(j=0; j<4; j++)

if(a[i][j]>m) m=a[i][j];

printf(“%dn”,m);

}

[答案] 12

题目 41

编写一个函数,函数头格式为“double Mean(double a[M][N],int m,int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程中采用变量v存放平均值。

[答案] double Mean(double a[M][N],int m,int n)

{

int i,j;

double v=0.0;

for(i=0; i<m; i++)

for(j=0; j<n; j++) v+=a[i][j];

v/=m*n;

return v;

}

题目 42

编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。

[答案] int FF(int a[], int n)

{

if(n==1) return a[n-1];

else return a[n-1]*FF(a,n-1);

}

题目 43

编写一个主函数,利用while循环,求出并显示满足不等式的最小n值。

[答案]

#include<stdio.h>

void main()

{

int i=0; double s=0;  //或int i=1; double s=1;

while(s<5) s+=(double)1/++i;

printf(“n=%dn”,i);

}

题目 44

编写一个主函数,求出满足不等式22+42+…+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。

[答案] #include<stdio.h>

void main()

{

int i=0;  //用i作为依次取值偶数的变量

int s=0;  //用s作为累加变量

do {

i+=2;

s+=i*i;

}while(s<1000);

printf(“n=%dn”,i-2);

}

题目 45

编写一个主函数,计算并输出12+22+…+n2值,其中n值由键盘输入。

[答案] #include<stdio.h>

void main()

{

int i;    //用i作为计数(循环)变量

int s=0;  //用s作为累加变量

int n;

printf(“输入一个自然数: “);

scanf(“%d”,&n);

for(i=1; i<=n; i++) s+=i*i;

printf(“s=%dn”,s);

}

 

形考任务三

题目1

在下面的函数声明语句中,存在着语法错误的是(    )。

[答案] CAA(int a; int b)

题目2

在下面的保留字中,不能作为函数的返回值类型的是(    )。

[答案] Cenum

题目3

假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为(    )。

[答案] C4

题目4

假定a为一个数组名,在下面的表达式中,存在语法错误的是(    )。

[答案] B*a++

题目5

用calloc函数创建具有10个整型元素的一维数组的正确语句是(    )。

[答案] Cint *p=calloc(10, 4) ;

题目6

假定变量m定义为“int m=7;”,则下面正确的语句为(    )。

[答案]B int *p=&m;

题目7

假定k是一个double类型的变量,则定义变量p的正确语句为(    )。

[答案]D char *p=”Thank you!”;

题目8

若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为(    )。

[答案] Dx=*pa+3;

题目9

假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为(    )。

[答案] Dpb=b[5];

题目10

已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为(    )。

[答案] Afree(p) ;

题目11

在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的(    )。

[答案] A原型语句

题目12

假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为(    )。

[答案]C f1

题目13

假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是(    )。

[答案] Bff(a[0])

题目14

假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为(    )。1B

[答案] Bchar* a

题目15

假定一个函数的二维数组参数说明为char w[][N],与之等价的指针参数说明为(    )。

[答案] Achar (*w) [N]

题目16

在C语言中,一个函数由函数头和函数体组成。

[答案]“对”

题目17

在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。

[答案]“对”

题目18

如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。

[答案]“错”

题目19

如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。

[答案]“对”

题目20

调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。

[答案]“对”

题目21

函数形参变量不属于局部变量。

[答案]“错”

题目22

假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。

[答案]“错”

题目23

假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。

[答案]“错”

题目24

假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。

[答案]“对”

题目25

假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。

[答案]“对”

题目26

若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。

[答案]“对”

题目27

假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。

[答案]“错”

题目28

假定x为一个简单变量,则&x表示x的地址。

[答案]“对”

题目29

若p指向x,则*p与x的值不同。

[答案]“错 ”

题目30

NULL是一个符号常量,通常作为空指针值,它代表的值为0。

[答案]“对”

题目31

#include<stdio.h>

int WF(int x, int y) {

x=x+y;

y=x+y;

return x+y;

}

void main() {

int x=5, y=7;

int z=WF(x,y);

printf(“z=%dn”,z);

}

[答案]z=31

题目32

#include<stdio.h>

#include<string.h>

void fun(char ss[]);

void main( ) {

char s[15]=”0123456789″;

fun(s);

printf(“%sn”,s);

}

void fun(char ss[]) {

int i, n=strlen(ss) ;

for(i=0; i<n/2; i++) {

char c=ss[i];

ss[i]=ss[n-1-i];

ss[n-1-i]=c;

}

}

[答案]9876543210

题目33

#include<stdio.h>

int Count(int a[], int n, int x)

{

int i,c=0;

for(i=0;i<n;i++)

if(a[i]>x) c++;

return c;

}

void main() {

int a[8]={20,15,32,47,24,36,28,70};

int b=Count(a,8,30);

printf(“b=%dn”,b);

}

[答案]B=4

题目34

#include<stdio.h>

void main() {

int a[8]={3,5,7,9,2,3,4,8};

int s=0,*p;

for(p=a;p<a+8;) s+=*p++;

printf(“s=%dn”,s);

}

[答案]s=41

题目35

#include<stdio.h>

int LA(int *a, int n, int x) {

int i,s=0;

for(i=0;i<n;i++)

if(a[i]<x) s+=a[i];

return s;

}

void main() {

int a[8]={5,10,15,8,12,3,9,20};

int b=LA(a,5,10);

int c=LA(a+2,6,10);

printf(“%d %dn”,b,c);

}

[答案]13 20

题目36

double SF(double x, int n) {  //n为正整数

double p=1,s=1;

int i;

for(i=1;i<=n;i++) {

p*=x;

s+=p;

}

return s;

}

[答案]计算出1+x+x2+…+xn的值并返回。

题目37

int SG(int x) {            //x为大于等于2的整数

int i=2;

while(i*i<=x) {

if(x%i==0) break;

i++;

}

if(i*i<=x) return 0; else return 1;

}

[答案]判断x是否为一个质数(素数),若是则返回1,否则返回0。

题目38

int WB(int a[], int n, int x) {

for(int i=0;i<n;i++)

if(a[i]==x) return 1;

return 0;

}

[答案]从数组a[n]中顺序查找值为x的元素,若查找成功则返回1,否则返回0。

题目39

int fun(int m, int n) {

int c=0;

static int b=2;

if(m<b || n<b) return m*n;

else if(m%b==0 && n%b==0) {c=b; return c*fun(m/b,n/b);}

else {b++; return fun(m,n);}

}

[答案]一个递归函数过程,求出两个自然数m和n的最小公倍数。

题目40

int LK(double a[], int n) {

double s=0;

int i,m=0;

for(i=0;i<n;i++) s+=a[i];

s/=n;

for(i=0;i<n;i++)

if(a[i]>=s) m++;

return m;

}

[答案]求出并返回数组a的n个元素中大于等于平均值的元素个数。

 

 

形考任务四

题目1

假定有“struct BOOK{char title[40]; float price; } ; struct BOOK book; ”,则不正确的语句为( )。

[答案]A. struct BOOK *x=malloc(book) ;

题目2

假定有“struct BOOK{char title[40]; float price; } book; ”, 则正确的语句为( )。

[答案]B. struct BOOK *x=&book;

题目3

在结构类型的定义中, 不同数据成员的定义项之间采用的分隔符是( )。

[答案] C. 分号

题目4

假定一个结构类型的定义为 “struct A{int a, b; double c; } ; ” , 则该类型的长度为( )。

[答案] D. 16

题目5

假定一个结构类型的定义为 “struct D{int a; D* next; } ; ” , 则该类型的长度为( )。

[答案]B. 8

题目6

假定要访问一个结构指针变量 x 中的数据成员 a, 则表示方法为( )。

[答案]B. x->a

题目7

与结构成员访问表达式 x. name 等价的表达式为( )。

[答案] C. (&x) ->name

题目8

假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next; } ; ”,则 next 数据成员的类型为( )。

[答案] B. struct AA*

题目9

假定一个链表的表头指针为 f, 结点中包含有 data 和 next 域, 则向该链表的表头插入一个地址为 p 的结点时, 应执行的操作为( )。

[答案]B. p->next=f 和 f=p

题目10

标准输入设备键盘的文件流标识符是( )。

[答案]A. stdin

题目11

表示文件结束符的符号常量为( )。

[答案]C. EOF

题目12

C 语言中打开一个数据文件的系统函数为( )。

[答案]D. fopen()

题目13

从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。

[答案]B. fgets()

题目14

向一个二进制文件中写入信息的函数 fwrite() 带有的参数个数为( )。

[答案] D. 4

题目15

在 C 语言中, 为只写操作打开一个文本文件的方式为( )。

[答案]D. “w”

题目16

在结构类型的定义中, 其中的数据成员可以是本身类型的直接对象。( )

[答案]错

题目17

在结构类型的定义中, 允许出现结构类型不完整的超前定义。( )

[答案]对

题目18

定义结构类型的变量时, 不能够同时进行初始化。 ( )

[答案]错

题目19

使用一个结构类型时, 必须一起使用关键字 struct 和类型标识符。 ( )

[答案]对

题目20

假定一个结构类型的定义为 “struct A{int a, b; A* c; } ; ” , 则该类型的长度为12。( )

[答案]对

题目21

假定一个结构类型的定义为 “struct B{int a[5]; char* b; } ; ” , 则该类型的长度为 20。( )

[答案]错

题目22

执行 calloc(n, 8) 函数调用时, 将动态分配得到 8*n 个字节的存储空间。( )

[答案]对

题目23

执行 malloc(sizeof(struct BB) ) 函数调用时, 得到的动态存储空间能够保存具有struct BB 结构类型的一个对象。( )

[答案]对

题目24

假定要访问一个结构对象 x 中的由 a 指针成员所指向的对象, 则表示方法为 x. a。( )

[答案]错

题目25

假定要访问一个结构指针 p 所指对象中的 b 指针成员所指的对象, 则表示方法为p->b。( )

[答案]错

题目26

与结构成员访问表达式(*fp) . score 等价的表达式是 fp->score。( )

[答案]对

题目27

在 C 语言中, 对二进制文件的所有不同打开方式共有 6 种。( )

[答案]对

题目28

C 语言中的标准输入和输出设备文件都属于字符文件。 ( )

[答案]对

题目29

在一个磁盘数据文件的文件名中, 文件主名和扩展名都是必须的, 不可省略。( )

[答案]错

题目30

在数据文件打开方式字符串中, 字符 r、 w 和 a 具有确定的含义, 分别代表读、 写和追加方式。( )

[答案]对

题目31

一个磁盘数据文件的文件名由文件主名和扩展名所组成, 其中间用圆点分开。( )

[答案]对

题目32

C 语言系统中提供一个用来描述文件属性的类型标识符为 FILE。 ( )

[答案]对

题目33

每次只能向文本文件中写入一个字符, 不能一次写入一个字符串。 ( )

[答案]错

题目34

对二进制文件进行读和写操作将使用相同的系统函数。( )

[答案]错

题目35

在 C 语言中, 系统函数 fseek() 用来移动数据文件中的文件位置指针。( )

[答案]对

题目36

#include<stdio.h>

struct Worker {

char name[15];  //姓名

int age;        //年龄

float pay;      //工资

};

void main() {

struct Worker x={“wanghua”,52,4300};

struct Worker y, *p;

y=x; p=&x;

printf(“%s  %d  %6.2fn”,x.name,y.age,p->pay);

}

[答案]wanghua 52 4300

题目37

#include<stdio.h>

#include<string.h>

struct Worker {

char name[15];  //姓名

int age;        //年龄

float pay;      //工资

};

void main() {

struct Worker x;

char *t=”liouting”;

int d=38; float f=3493;

strcpy(x.name,t);

x.age=d; x.pay=f;

printf(“%s  %d  %6.0fn”,x.name,x.age,x.pay);

}

[答案]liouting 39 2493

题目38

#include<stdio.h>

struct Worker {char name[15]; int age; float pay;};

int Less(struct Worker r1, struct Worker r2) {

if(r1.age<r2.age) return 1; else return 0;

}

void main() {

struct Worker a[4]={{“abc”,25,2420},{“def”,58,4638},

{“ghi”,49,4260},{“jkl”,36,3750}};

struct Worker x=a[0];

int i;

for(i=1; i<4; i++)

if(Less(x,a[i])) x=a[i];

printf(“%s  %d  %6.0fn”,x.name,x.age,x.pay);

}

[答案]def 58 4638

题目39

void QA(struct Worker a[], int n) {

int i;

for(i=1; i<n; i++)

scanf(“%s %d %f”,&a[i].name,&a[i].age,&a[i].pay);

}

假定结构类型struct Worker 的定义如下:

struct Worker { char name[15]; int age; float pay;};

[答案]从键盘输入 n 个 Worker 类型的记录到一维数组 a 中。

题目40

int Count(struct IntNode *f)

{      //f为指向一个单链表的表头指针

int c=0;

while(f) {

c++;

f=f->next;

}

return c;

}

假定struct IntNode的类型定义为:

struct IntNode {int data; IntNode* next;};

[答案]统计出以表头指针为 f 的链表中结点的个数。

题目41

void xw1(char* fname) {

FILE* fout=fopen(fname,”w”);

char a[20];

printf(“每个字符串长度小于20,字符串end作为结束标志n”);

while(1) {

scanf(“%s”,a);

if(strcmp(a,”end”)==0) break;

fputs(a,fout);

fputc(‘n’,fout);

}

fclose(fout);

}

[答案]把从键盘上输入的若干个字符串保存到由 fname 参数所指定的文本文件中。

资源下载
下载价格6.00
点点赞赏,手留余香 给TA打赏

AI创作

评论0

请先
支持多种货币
支持多种货币付款,满足您的付款需求
7天无忧退换
安心无忧购物,售后有保障
专业客服服务
百名资深客服7*24h在线服务
发货超时赔付
交易成功极速发货,专业水准保证时效性

站点公告

开放大学课程作业代写,有需要扫码加微信

显示验证码

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录