C语言 学科练习
                            得分:           
卷一(60分)
一、选择题(每题2分,共40分)
1、以下叙述正确的是:__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、用高级程序设计语言编写的程序称为__C__。
A)目标程序  B)可执行程序 C)源程序 D)伪代码
3、以下符合C语言语法的实型常量是__C__。
A)1.2E0.5  B)3.14159E  C).5E-3  D)E15
4、若以下选项中的变量已正确定义,则正确的赋值语句是_C__。
A)x1=26.8%3;  B)1+2=x2;  C)x3=0x12;  D)x4=1+2=3;
5、设有定义:float a=2,b=4,h=3;以下C语言表达式中与代数式计算结果不
相符的是__B__。
A)(a+b)*h/2  B)(1/2)*(a+b)*h  C)(a+b)*h*1/2  D)h/2*(a+b)
6、下列选项中可以作为C语言中合法整数的是__C__。
A)10110B  B)0386  C)0Xffa  D)x2a2
7、设有以下定义:
int a=0; double b=1.25;  char c=’A’;
#define d 2
则下面语句中,错误是__D__。
A)a++;  B)b++;  C)c++;  D)d++;
8、设有如下程序段:
int x=2002,y=2003;
printf(“%d\n”,(x,y));
则以下叙述正确的是__D__。
A)输出语句中格式说明的个数少于输出项的个数,不能正确输出。
B)运行时产生出错信息。
C)输出值为2002。
D)输出值为2003。
9、要求以下程序功能是计算: putchar函数
main()
{int n; float s;s=1.0;
for(n=10;n>1;n--) s=s+1/n;
printf(“%6.4f\n”,s);}
程序运行后输出结果错误,导致错误结果的程序行是__C__。
A)s=1.0;  B)for(n=10;n>1;n--)  C)s=s+1/n;  D)printf(“%6.4f\n”,s);
10、以下4个选项中,不能看作一条语句的是_D__。
A){;}  B)a=0,b=0,c=0;  C)if(a>0);  D)if(b==0) m=a;n=2;
11、有以下程序:
main(){int x=102,y=012;
    printf(“%2d,%2d\n”,x,y);}
执行后输出结果是__C__。
A)10,01  B)02,12  C)102,10  D)02,10
12、有定义语句:int x,y;,若要通过语句scanf(“%d,%d”,&x,&y);使变量x得到数值11,变量y 得到数值12,下面四组输入形式中,正确的是__C__。
A)11 12<回车>  B)11, 12<回车> 
C)11,12<回车>  D)11,<回车> 12<回车>
13、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是__A__。
A)if((a>b&&(b>c)) k=1;else k=0;  B)if((a>b)||(b>c)) k=1;else k=0;
C)if(a<=b) k=0;else if(b<=c) k=1;  D)if(a>b) k=1;else if(b>c) k=1;else k=0;
14、有以下程序:
main(){int x=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}
程序执行后的输出结果是__B__。
A)3,2,0  B)3,2,-1  C)4,3,-1  D)5,-2,-5
15、有以下程序:此题应注意短路逻辑
main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(“%d,%d\n”,k,m);}
程序运行后的输出结果是__C__。
A)0,0  B)0,1  C)1,0  D)1,1
16、有以下程序:注意case穿透的问题
main(){ int i;
for(i=0;i<3i++)
switch(i){
    case 1:printf(“%d”,i);
    case 2:printf(“%d”,i);
    default:printf(“%d”,i);}}}
执行后输出的结果是__A___。
A)011122  B)012  C)012020  D)120
17、有以下程序:
main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d\n”,i,j,k);}
执行后的输出结果是__C__。
A)1,1,2  B)2,2,1  C)2,2,2  D)2,2,3
18、有以下程序:
main(){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}
程序执行后的输出结果是__D__。
A)自然数1~9的累加和   A)自然数1~10的累加和
C)自然数1~9中奇数之和  D)自然数1~10中偶数之和
19、有以下程序:
main(){ int i,n=0;
    for(i=2;i<5;i++){
        do{ if(i%3) continue;n++;}while(!i);
        n++;}
    printf(“n=%d\n”,n);}
程序执行后输出结果是_D__。
A)n=5   B)n=2   C)n=3   D)n=4
20、有如下程序:
main(){ int s=0,a=1,n;scanf(“%d”,&n);
    do{ s+=1;a=a-2;}while(a!=n);
    printf(“%d”,s);}
若要使程序输出值为2,则应该从键盘输入的值是_B__。
A)-1   B)-3  C)-5  D)0
21、有如下程序段,其中s、a、b、c均为已经定义为整型变量,且a、c均已经赋值(c>0)。
linux下学什么编程s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是_B__。
A)s=a+b;  B)s=a+c;  C)s=s+c;  D)s=b+c;
22、有如下程序:
main(){ int k=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf(“%d,%d\n”,k,n);}
程序运行后的输出结果是_C__。
A)1,1  B)2,2  C)3,3  D)4,4
23、有以下程序:
main(){ int i=0,s=0;
    do{ if(i%2){i++;continue;} i++;s+=i; }while(i<7);小歪api
    printf(“%d\n”,s);}
执行后输出结果是__A_。
A)16   B)12   C)28  D)21
24、以下不能正确定义二维数组的选项是_D__。
A)int a[2][2]={{1},{2}}        B)int a[][2]={1,2,3,4}
C)int a[2][2]={{1},2,3}        D)int a[2][]={{1,2},{3,4}}
25、有以下程序:
main(){int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++)printf(“%d”,m[k][i]);}
程序运行后的输出结果是_C__。
A)456        B)258        C)369        D)789
26、若有说明: int a[5][5]; 则对数组元素的正确引用是( C ).
A.a[3+2][3]        B.a[0,3]              C.a[4][1+2]            D.a[ ][2]
27、下列二维数组初始化中,错误的是( A ).
同步传输与异步传输的区别
A.int a[2][ ]={{3,4},{5}};                    B.int a[][3]={2,3,4,5,6,7};
C.int a[3][3]={0};                       
D.int a[5][4]={{1,2},{2,3},{3,4},{4,5}};
28、若有以下数组定义: char ch[]="book_120\n"; 则数组ch的存储长度是(D  )。tortoisegit拉取代码
A.7                B.8                  C.9                    D.10
29、以下程序段的输出结果是( A ).
char str[8]={'a','b','c','d','\0','y','z','\0'};
printf("%s",str);
A.abcd            B.abcd  yz          C.abcdyz            D.出错
30、合法的数组定义是( B )
A.int a[ ]={"string"};                      B.int a[ ]={0, 1, 2, 3, 4, 5};
C.char a={"string"};                      D.char a[ ]={0, 1, 2, 3, 4, 5};
卷二(40分)
一、选择题(每题2分,共60分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
linux删除的东西怎么恢复
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
二、填空题(在横线上填上正确的答案,每题2分,共14分)
1、设有以下变量定义,并已赋确定的值,char w; int x; float y; double z;
则表达式:w*x+z-y年求得的数据类型为double或双精度型
2、符号常量的定义方法是  #define 常量名 常量
3、设有下列运算符:<<、+、++、&&、>=,其中优先级最高的是  ++  ,优先级最低的是  && 
4、putchar()函数可以向终端输出一个  字符   
5、设有定义语句“int a[3][4]={{1}, {2}, {3}}”,则a[2][1]的值为    0   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。