|
北理工《C语言程序设计》在线作业
北理工作业答案
一、单选题:
1. 在以下对C语言的描述中,正确的是()。
A. 在C语言中调用函数时,只能将实参数的值传递给形参,形参的值不能传递给实参
B. C语言函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
D. C语言程序中有定义关系的所有函数都必须放在同一源文件中
正确答案:——A——
2. 若在键盘上输入:283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是()。
A. scanf(\%f\,&c);
B. scanf(\8.4f\,&c);
C. scanf(\%6.2f\,&c);
D. scanf(\8f\,&c);
正确答案:——A——
3. 以下()不是C语言的特点。
A. 语言的表达能力
B. 语言定义严格
C. 数据结构系统化
D. 控制流程结构化
正确答案:——B——
4. C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是()。
A. 编辑和编译
B. 编译和连接
C. 连接和运行
D. 编辑和运行
正确答案:————
5. 以下程序的输出是()。main(){chara[2][5]={“6937”,”8254”};inti,j,s=0;for(i=0;i<2;i++)for(j=0;a[j]>'0'&&a[j]<='9';j+=2)s=10*s+a[j]-‘0’;printf(“s=%d\n”,s);}
A. 6385
B. 69825
C. 63825
D. 693825
正确答案:————
6. 已知:struct{inti;charc;floata;}test;则sizeof(test)的值是()。
A. 4
B. 5
C. 6
D. 7
正确答案:————
7. 已知“inta=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为()。
A. 1
B. 0
C. 4
D. 5
正确答案:————
8. 为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当时()。
A. \r+\
B. \w+\
C. \wb+\
D. \ab+\
正确答案:————
9. 说明语句\int(*p)();\的含义是()。
A. p是一个指向一维数组的指针变量
B. p是一个指针变量,指向一个整型数据
C. p是一个指向函数的指针,该函数的返回值是一个整型
D. 以上都不对 奥鹏作业答案
正确答案:————
10. 执行以下程序段后,a,b,c的值分别是()。inta,b=100,c,x=10,y=9;a=(--x==y++)?—x:++y;if(x<9)b=x++;c=y;
A. 9,9,9
B. 8,8,10
C. 9,10,9
D. 1,11,10
正确答案:————
11. 以下对C语言中联合类型数据的正确叙述是()。
A. 一旦定义了一个联合变量后,即可引用该变量或该变量中的任意成员
B. 一个联合变量中可以同时存放其所有成员
C. 一个联合变量中不能同时存放其所有成员
D. 联合类型数据可以出现在结构类体型定义中,但结构体类型数据不能出现在联合类型定义中
正确答案:————
12. 以下正确的数组定义语句是()。
A. inty[1][4]={1,2,3,4,5
B. floatx[3][]={{1
C. longs[2][3]={{1
D. doublet[][3]={0
正确答案:————
13. 已知:chars[10],*p=s,则在下列语句中,错误的语句是()。
A. p=s+5;
B. s=p+s;
C. s[2]=p[4];
D. *p=s[0];
正确答案:————
14. 下面程序的输出结果是()。main(){inti,j;floats;for(i=6;i>4;i--){s=0.0;for(j=i;j>3;j--)s=s+i*j;}printf(“%f\n”,s);}
A. 135.000000
B. 90.000000
C. 45.000000
D. 60.000000
正确答案:————
15. 若有chara[80],b[80];则正确的是()。
A. puts(a,b);
B. printf(“%s,%s”a[],b[]);
C. putchar(a,b);
D. puts(a);puts(b);
正确答案:————
16. 下面描述中,不正确的是()。
A. 递归法的关键是必须有一个递归终止的条件。
B. 递归算法要求语言具有反复自我调用子程序的能力。
C. 对于同一个问题,递推算法比递归算法的执行时间要长。
D. 递推算法总可以转换为一个递归算法。
正确答案:————
17. 下列程序执行的结果是()。A=1;b=2;c=3;While(b<a<c){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);
A. 1,2,0
B. 2,1,0
C. 1,2,1
D. 2,1,1
正确答案:————
18. C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。
A. 地址传递
B. 值传递
C. 由实参传给形参,并由形参传回给实参
D. 由用户指定传递方式
正确答案:————
19. 在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则()。
A. 称为函数的直接递归
B. 称为函数的间接递归
C. 称为函数的递归定义
D. C语言中不允许这样的递归形式
正确答案:————
20. 以下程序的输出结果是()。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a=i;for(i=0;i<3;i++)p=a[i*(i+1)];for(i=0;i<3;i++)k+=p*2;printf(“%d”,k);}
A. 20
B. 21
C. 22
D. 23
正确答案:————
21. 已知:structsk{inta;floatb;}data,*p;若有p=&data,则对data中的成员a的正确引用是()。
A. (*p).data.a
B. (*p).a
C. p->data.a
D. p.data.a
正确答案:————
22. 不能正确为字符数组输入数据的是()。
A. chars[5];scanf(“%s”,&s);
B. chars[5];scanf(“%s”,s);
C. chars[5];scanf(“%s”,&s[0]);
D. chars[5];gets(s);
正确答案:————
23. if语句的控制条件()。
A. 只能用关系表达式
B. 只能用关系表达式或逻辑表达式
C. 只能用逻辑表达式
D. 可以是任何表达式
正确答案:————
24. 执行下面的语句后x的值为()。inta=14,b=15,x;charc='A';x=((a&b)&&(c<'a'));
A. TRUE
B. FLASE
C. 0
D. 1
正确答案:————
25. 要判断char型变量m是否是数字字符,可以使用下列表达式()。
A. 0<=m&&m<=9
B. '0'<=m&&m<='9'
C. “0”<=m&&m<=“9”
D. 前3个答案都是错误的
正确答案:————
26. 利用fseek函数可以()。
A. 改变文件的位置指针
B. 实现文件的顺序读写
C. 实现文件的随机读写
D. 以上答案均正确
正确答案:————
27. 下面个选项组中,均属于C语言关键字的一组是()。
A. auto,enum,include
B. switch,typedef,continue
C. signed,union,scanf
D. if,struct,type
正确答案:————
28. 以下程序的输出结果是()。main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d,”x[2-i]);}
A. 1,5,9
B. 1,4,7
C. 3,5,7
D. 3,6,9
正确答案:————
29. 已知:intx=1,y=2,z;则执行z=x>y?++x:++y;则z的值为()。
A. 1
B. 2
C. 3
D. 4
正确答案:————
30. 若inta,b,c;则为它们输入数据的正确的语句是()。
A. read(a,b,c);
B. scanf(\%d%d%d\,a,b,c);
C. scanf(\%D%D%D\,&a,&b,&c);
D. scanf(\%d%d%d\,&a,&b,&c);
正确答案:————
31. 若有以下定义和语句:structstudent{intnum,age;};structstudentstu[3]={{1001,20},{1001,19},{1003,21}};structstudent*p=stu;则以下错误的引用是()。
A. (p++)->num
B. p++
C. (*p).num
D. p=&stu.age
正确答案:————
32. 下列对字符串的定义中错误的是()。
A. charstr[7]=\FORTRAN\
B. charstr[]=\FORTRAN\
C. char*str=\FORTRAN\
D. charstr[]={'F','O','R','T','R','A','N','
正确答案:————
33. C语言结构类型变量在程序执行期间()。
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在内存中
D. 没有成员驻留在内存中
正确答案:————
34. 指出程序结束时,j、i、k的值分别是()。main(){inta=10,b=5,c=5,d=5,i=0,j=0,k=0;for(;a>b;++b)i++;while(a>++c)j++;dok++;while(a>d++);}
A. j=5,i=4,k=6;
B. i=5,j=4,k=6;
C. j=6,i=5,k=7
D. j=6,i=6,k=6;
正确答案:————
35. main(argc,argv)中形式参数argv的正确说明形式应当为()。
A. char*argv[]
B. charargv[][]
C. charargv[]
D. char*argv
正确答案:————
36. 执行下列程序段后,x、y和z的值分别是()。intx=10,y=20,z=30;if(x>y)z=x;x=y;y=z;
A. 10,20,30
B. 20,30,30
C. 20,30,10
D. 20,30,20
正确答案:————
37. 执行以下程序段后,c3的值是()。intc1=1,c2=2,c3;c3=c1/c2;
A. 0
B. 1/2
C. 0.5
D. 1
正确答案:————
38. 下列说法中正确的是()。
A. break用在switch语句中,而continue用在循环语句中。
B. break用在循环语句中,而continue用在switch语句中。
C. break能结束循环,而continue只能结束本次循环。
D. continue能结束循环,而break只能结束本次循环。
正确答案:————
39. 已知:inta,*p=&a;则下列函数调用中错误的是()
A. scanf(\%d\,&a);
B. scanf(\%d\,p);
C. printf(\%d\,a);
D. printf(\%d\,p);
正确答案:————
40. 若intx;则执行下列程序段后输出是()。for(x=10;x>3;x--){if(x%3)x--;--x;--x;printf(“%d”,x);}
A. 63
B. 62
C. 74
D. 73
正确答案:————
三、判断题:
41. 若函数的返回值与return表达式类型不一致时,以return表达式类型为准。
A. 错误
B. 正确
正确答案:————
42. 在标准C语言中,在定义带参数的宏时也要定义参的类型。
A. 错误
B. 正确
正确答案:————
43. 设有变量定义chars[]=”hello”,则数组中有6个元素。
A. 错误
B. 正确
正确答案:————
44. 在标准C语言中,可以用typedef定义类型,所以用typedef可以增加C语言的数据类型。
A. 错误
B. 正确
正确答案:————
45. \A\是一个字符常串量。
A. 错误
B. 正确
正确答案:————
46. 在标准C语言中,所有函数在调用之前都要进行声明。
A. 错误
B. 正确
正确答案:————
47. 在C语言中,函数中只能有一个return语句。
A. 错误
B. 正确
正确答案:————
48. “%”运算两侧的数据可以是任意类型的数据。
A. 错误
B. 正确
正确答案:————
49. 在C语言中,参与运算的数据类型必须完全一致,不一致时要先将较低的数据类型转换为较高的数据类型。
A. 错误
B. 正确
正确答案:————
50. 在C语言中,以“r”方式不能打开并不存在的文件。
A. 错误
B. 正确
正确答案:————
奥鹏答案
|
|