川农《C语言(专科)》17年3月在线作业
一、单选题(共 20 道试题,共 100 分。)
1. 假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;
A. 34
B. 4
C. 35
D. 3
正确答案:
2. 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式1的表达式是( )
A. 1/a*b*c
B. 1/(a*b*c)
C. 1/a/b/(float)c
D. 1.0/a/b/c
正确答案:
3. C语言的编译系统对宏命令的处理是( )
A. 在程序运行时进行的
B. 在程序连接时进行的
C. 和C程序中的其它语句同时进行编译的
D. 在对源程序中其它成份正式编译之前进行的
正确答案:
4. 以下有关宏替换的叙述不正确的是( )
A. 宏替换不占用运行时间
B. 宏名无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
正确答案:
5. 以下程序的输出结果是( )main(){ int x=10,y=10; printf("%d %d\n",x--,--y);}
A. 10 10
B. 9 9
C. 9 10
D. 10 9
正确答案:
6. 运行以下程序后,如果从键盘上输入 china#,则输出结果为( )#includemain(){ int v1=0,v2=0;char ch;while((ch=getchar())!=#)switch(ch){ case a;case h;default; v1++;case 0; v2++;}printf("%d,%d\n",v1,v2);}
A. 2,0
B. 5,0
C. 5,5
D. 2,5
正确答案:
7. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( )
A. c=b=a;
B. (a=c)‖(b=c);
C. (a=c)&&(b=c);
D. a=c=b;
正确答案:
8. 下列程序执行后输出的结果是( )int d=1;fun (int q) { int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}
A. 8 4
B. 9 6
C. 9 4
D. 8 5
正确答案:
9. 执行下面的程序后,a的值为( )main(){ int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5; }}
A. 7
B. 8
C. 9
D. 10
正确答案:
10. 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( )
A. 1
B. 2
C. 2.0
D. 2.5
正确答案:
11. 在以下一组运算符中,优先级最高的运算符是( )
A. <=
B. =
C. %
D. &&
正确答案:
12. 请选出以下语句的输出结果( )printf("%d\n",strlen("\t\"\065\xff\n"));
A. 5
B. 14
C. 8
D. 输出项不合法,无正常输出
正确答案:
13. 不能把字符串:Hello!赋给数组b的语句是( )
A. char b[10]={H,e,l,l,o,!};
B. char b[10];b="Hello!";
C. char b[10];strcpy(b,"Hello!");
D. char b[10]="Hello!";
正确答案:
14. 在C语言中,合法的长整型常数是( )
A. 0L
B. 4962710
C. 0.054838743
D. 2.1869e10
正确答案:
15. 以下程序的输出结果是( )#include main( ){ char *p1,*p2,str[50]="ABCDEFG";p1="abcd"; p2="efgh";strcpy(str+1,p2+1); strcpy(str+3,p1+3);printf("%s",str);}
A. A)AfghdEFG
B. Abfhd
C. Afghd
D. Afgd
正确答案:
16. 在宏定义 #define PI 3.14159中,用宏名PI代替一个( )
A. 常量
B. 单精度数
C. 双精度数
D. 字符串
正确答案:
17. 以下说法中正确的是( )
A. #define和printf都是C语句###define是C语句,而printf不是##printf是C语句,但#define不是###define和printf都不是C语句
B. #define是C语句,而printf不是
C. printf是C语句,但#define不是
D. #define和printf都不是C语句
正确答案:
18. 若i ,j已定义为int类型,则以下程序段中for (i=5;i;i--)for(j=0;j<4;j++){...}内循环体的总的执行次数是( )
A. 20
B. 15
C. 24
D. 16
正确答案:
19. 请读程序#define ADD(x) x+x main(){int m=1, n=2, k=3;int sum=ADD(m+n) * k;printf("sum=%d", sum);}上面程序的运行结果是( )
A. sum=9
B. sum=10
C. sum=12
D. sum=18
正确答案:
20. 下面能正确进行字符串赋值操作的语句是( )
A. char s[5]={"ABCDE"};
B. char s[5]={A,B,C,D,E};
C. char *s;s="ABCDEF";
D. char *s; scanf("%s",s);
正确答案: