一、单项选择题
1.下列不属于C语言保留字的是( )
A. char B while C typedef D look 2.下列关于C语言的叙述错误的是( )
A 英文字母大小写不加以区分 B 不同类型的变量可以出现在同一个表达式中 C 在赋值表达中赋值号两边的类型可以不同 D 某些运算在不同的场合可以有不同的含义 号3.下列转义字符中错误的是( )
考A ‘\\000’ B ‘\\14’ C ‘\\x111’ D ‘\\2’ 4.执行语句Printf(“%x”,-1);后输出结果是( ) A -1 B –ffff C. 1 D ffff 5.设float a=2,b=4,c=3;,以下C语言表达式与代数式
1 2(a+b)c计算结果不一致的是( ) A (a+b)*c/2 B (1/2)*(a+b)*c C (a+b)*c*1/2 D c/2*(a+b) 6.设int a=10,b=20,c=30; 条件表达式a 9.在运算中,操作数左移一位,其结果相当于操作数( ) 名A 乘以2 B 除以2 C 乘以4 D除以4 姓10.使用语句scomf (“a=%f,b=%f”,&a,&b);输入变量a、b的值(口代表空格),正确的是( A , B 口 C a=,b= D a=口b= 11、下列说法中错误的是: A、C语言中循环嵌套的层数没有限定 B、C语言中的内部函数只能在本文件中被调用 C、用typedef语句定义的数据类型名称必须是大写字母 D、C语言中的continue语句,可以通过改变程序的结构而省略 12、设char s[10],*p=s;,下列语句中错误的是: A、p=s+5;B、s=p+5;C、s[2]=p[4];D、*p=s[0]; 13、设enum week{sun,mon,tue,wed,thu,fri,sat}day;正确的赋值语句是: A、sun=0; B、sun=day; C、mon=sun=1; D、day=sun; 14、若用数组中作为函数调用时的实参,则实际上传递给形参的是: A、数组的第一个元素值 B、数组元素的个数 C、数组中全部元素的值 D、数组首地址 级15、下列错误的是: 班A、char s[ ]=“china”; B、char s[10]={“china”}; C、char s[10];s=“china”; D、char s[10]={‘c’, ‘h’, ‘i’, ‘n’, ‘a’}; 16、在C语言中,有值函数的数据类型是指( ) A 函数形式参数的数据类型 B 函数返回值的数据类型 C 调用该函数时的实参的数据类型 D 任意指定的数据类型 17.设Struct {short a; char b; float c; }cs; 则 size of (cs)的值是( ) A 4 B 5 C 6 D 7 ) 18.设int x[ ]={1,2,3,4,5,6,7,8,9,0},*p=x, k;且0≤k<10,则对数组元素x[k]的错误引用是( ) A P+K B *(X+K) C X[ P-X=K] D *(&X[K]) 19.设 #define N 3 #define Y((n) ((N+1)*n) 则表达式2*(N+Y(5+1))的值是( ) A 42 B 48 C 54 D出错 20.关于主函数的形式参数,下列说法正确的是( ) A 可以有两个 B 类型可以是实型 C 不可以由用户自己定义名字 D 是在程序编译时获得实际值 二、填空题 21.可以将被函数中获得的值返回给主调函数的语句是( )。 22.设int x=2,y=1;则表达式x+++y的值是( )。 23.若未指定局部变量的存储类型,则其隐含的存储类型是( )。 24.在执行循环结构或switch结构时,能够立即退出该结构的语句是( )。 25.设a=12,则执行a+=a-+a*=a;后变量a的值是( )。 26.设int a,b,c;则执行a=(b=3,c=5,b=10);后变量a的值是( )。 27.设a=100,*p1=&a,**p2=&p1;,则表达式**P2的值是( )。 28.静态型外部变量的作用域是( )。 29.设 int a[2][3]={1,2,3,4,5,6};则数组元素a[1][0]的值是( )。 30.函数调用时,若形参是一个变量,而对应的实参是一个有确定值得表达式,则函数参数的传递方式是(三、程序分析题 ( ) { int i ; for (i=1;i<3;i++) f(i); } f( int j) {static int a=100; int k=1; ++k; printf (“%d\\n”,j+a+k); a-=2; } 32. # include 33. /*设从键盘输入:420<回车>*/ main ( ) { char c; while ((c=getchar ( )!=‘\\n’) switch (c-‘0’) { case 0: case 1:putchar(c+2); )传递。 case 2:putchar(c+3);break; case 3:putchar(c+4); default:putchar(c+1);break; } printf(“\\n”); 四、程序填空题 34.一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33) ,找出所有的这种数。 main( ) {int n,a,b,c;/*n、a、b和c分别为三位数自身及其个位、十位和百位*/ for (c=1;c<=9;c++) for(b=0;b<=9;b++) for(___________;a++) { n=_________; if(a*a*a+b*b*b+c*c*c==___________) printf (“%d\\n”,n) } } 35.输入一个数字(范围在0~9之间,若不在此范围内显示输入错),输出对应的应为单词(Zero,One,Two……,Nine)。 main() {int i; char *digit[10]={“Zero”,“One”,“Two”,“Three”,“Four”,“Five”,“Six”,“Seven”,“Eight”,“Nine”}; scanf (“%d,___________); printf (“%d→”,i); if(___________) printf (“%s\\n”,digit[______]); else printf (“In put error!\\n”); } 36.将一个文本文件(ma dat)拷贝到另一个文本文件(niu dat )中. #include <> main ( ) {FILE.*ma,*niu; ma=fopen(“”,____________); niu= fopen(“”,“w”); while (!feof(ma)) fput((ma),_____________); fclose(niu);_____________; 五.程序设计题 37.输入某学生的数学(math)、英语(english)、和C语言(C)的成绩,输出该学生这三门课的成绩、总成绩(sum)和平均成绩(aver). 38.在一个二维数组(定义为int a[5][5];)中形成并按下列形式输出矩阵各元素的值。 1 0 0 0 0 2 1 0 0 0 3 2 1 0 0 4 3 2 1 0 5 4 3 2 1 C语言考试答案 一.单项选择题: 11C 12B 13D 14D 15C 16B 17D 18A 19B 20A 因篇幅问题不能全部显示,请点此查看更多更全内容