C语言期末模拟试题

一、选择题:(20分,每题2分) 1.以下不正确的C语言标识符是(D)。 A. ABC B. abc C. a_bc D. ab.c 2.C程序是由B构成的。 A. 主程序与子程序 B. 主函数与若干子函数 C. 一个主函数与一个其它函数 D. 主函数与子函数 3.以下说法中正确的是:A。

A. 在C语言中,实参与其对应的形参各占独立的存储单元; B. 在C语言中,实参与其对应的形参共占同一个存储单元;

C. 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;

D. 在C语言中,形参是虚拟的,不占存储单元。 4.设n=3;则n++的结果是(B)。 A. 2 B. 3 C. 4 D. 5

5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。 A. 0 B. 1 C. 2 D. 3

6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(A)。 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register) 7.在while(x)语句中的x与下面条件表达式等价的是:D。 A. x= =0 B. x= =1 C. x!=1 D. x!=0 8.若有以下说明和语句: struct worker {

int no; char *name; }work, *p=&work;

则以下引用方法不正确的是(D)。

A. work.no B. (*p).no C. p->no D. work->no

9.以下对二维数组进行正确初始化的是(B)。 A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[][3]={1,2,3,4,5,6}; C. int a[2][]={1,2,3,4,5,6}; D. int a[2][]={{1,2},{3,4}};

10.二维数组a有m列,则在a[i][j]之前的元素个数为:B。

A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1

二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include main() {

int i=16,j,x=6; j=i+++1; x*=i=j;

printf(“%d,%d\\n”,j,x); }

运行结果是:

2.#include #include main() {

int a=1,b=4,c=2; float x=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\\n”,z);

}

运行结果是:

3.#include main() {

int a,b,c,d; a=c=0; b=1; d=20; if(a) d=d-10; else if(!b) if(!c) d=25; else d=15; printf(“d=%d\\n”,d); } 运行结果: 4.main()

{

int i=10; switch(i){

case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; } printf(“%d”,i); }

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4