中国美术学院2022年C语言期末考题
本试卷为中国美术学院2022年C语言期末考题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言期末考题
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、表达式________的值是0。
( C )
2、若有代数式(3ae)/( ),则下面不正确的c语言表达式是________。
( A )
3、有定义语句:int x, y; 若要通过scanf("%d,%d",&x,&y); 语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是________。
( D )
4、不合法的常量是: 。
( C )
5、以下各选项企图说明一种新的类型名,其中正确的是______。
( D )
6、若有说明 :char c[10]= { 'e','a','s','t','\0' };, 则下述说法中正确的是 __ __________.
( D )
7、设int a=0; 错误的语句是________。
( D )
8、关于字符常量,以下叙述正确的是________。
( C )
9、将用高级程序语言编写的源程序翻译成目标程序的程序称______。
( B )
10、有如下程序段int *p,a=5,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为______。
( D )
11、以下选项中不属于c语言类型的是______。
( C )
12、不正确的赋值或赋初值的方式是____。
( B )
13、判断实数 x 属于闭区间 [a, b ] 的表达式为 ▁▁▁▁▁设a为整型变量,不能正确表达数学关系10<a<15的c语言表达是________。
( A )
14、以下不符合c语言语法的赋值语句是________。
( B )
15、下列表达式中,可作为c合法表达式的是________。
( D )
16、若变量c定义为float型变量,能给变量c正确赋值的语句是________。
( A )
17、下列两条语句" int c1=1,c2=2,c3; c3=1.0/c2*c1; "执行后变量c3的值是________。
( B )
18、假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b) 的值是________。
( D )
19、设有char str[10] ,下列语句正确的是________ 。
( D )
20、设已定义整型变量k,则下面的程序输出为________。k=017 ; s=111; printf ( ''%d'', ++k); printf ( ''%x\n'' ,s++);
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、下列程序的输出结果是________。 main() { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=1; case 1; case 2:a+=2; default:a+=3; } } printf("%d",a); }
( A )
2、有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是________。
( A )
3、以下程序的输出结果是________。 #include<stdio.h> main() { int a=4,b=3,c=2,d=1; printf("%d",a<b?a:d<c?d:b); }
( C )
4、c语言中下面哪个不是条件语句?
( A )
5、有如下程序 main() { int x=1,a=5,b=5; switch(x) { case 0: b--; case 1: a--; case 2: a--; b--; } printf("a=%d,b=%d\n",a,b); } 该程序的输出结果是______。
( B )
6、以下叙述中正确的是________。
( A )
7、c语言的if语句嵌套时,if与else的配对关系是________。
( A )
8、c 语言中逻辑表达式的值为________。
( C )
9、a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。
( A )
10、执行下面语句后的输出为____ int i= -1; if (i < =0)printf("****\n"); else printf("%%%%\n");
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、有以下程序: 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); } 程序执行后输出结果是________。
( C )
2、以下for循环是________。 for(x=0,y=0;(y!=123) && (x<4);x++)
( A )
3、下列语句中,可以作为无限循环语句的是________。
( B )
4、有下列程序: main() { int i,j; for(i=1;i<4;i++) { for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j); printf("\n"); } } 程序运行后的输出结果是________。
( B )
5、下面程序段执行后输出的结果是________ #include<stdio.h> main() { int i; for(i=1;i<8;i++) { { if(i%3) { printf("*"); continue; } } printf("#"); } printf("\n"); }
( D )
6、有以下程序 #include <stdio.h> main() { int i,j; for(i=3;i>=-1;i-) { for(i=1;j<=2;j++) printf("%d",i+j); printf("\n"); } } 程序的运行结果是______。
( A )
7、以下程序的输出结果是 _______ 。 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++; break; case 1:b++; break; } case 2:a++; b++; break; } printf("%d,%d\n",a,b); }
( B )
8、执行下面程序片段的结果是______。int x=23; do { printf("%2d",x--); } while(!x);
( B )
9、有以下程序 main( ) { int c=5,x; scanf("%d",&x); switch(x+1) { case 6: c++; case 8: ++c; break; default:c+=3; } printf("%d",c); } 程序运行时,从键盘输入: 5<回车>,程序执行后的输出结果是________。
( A )
10、设n 为整型变量,则循环语句for(n=10;n > 0;n--) 的循环次数为________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( A )
1、下列字符数组初始化语句中,不正确的是________。
( B )
2、若有定义"int b[8],*p=b;",则p+6表示( )。
( B )
3、若有以下数组说明,则i=10; a[a[i]]元素数值是________。 int a[12]= { 1,4,7,10,2,5,8,11,3,6,9,12 } ;
( D )
4、设有二维数组a(12,10),其每个元素占4个字节,数据按列优先顺序存储,第一个元素的存储地址为100。则元素a(5,5)的存储地址为________。
( B )
5、有如下定义语句:int a[]= {1,2,3,4,5 },则对语句int * p=a; 正确的描述是________。
( A )
6、设有定义 double a[10],*s=a; 以下能够代表数组元素a[3]的是______。
( A )
7、下面程序的运行结果是 #include<stdio.h> main() { static char a[]="languagef" ,b[]="programe"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); }
( D )
8、下面关于数组的初始化正确的是________。
( D )
9、要定义一个字符串,下列选项中错误的是________。
( D )
10、在c语言中,一维数组的定义方式为:类型说明符 数组名____
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下选项中能表示合法常量的是________。
( A )
2、下列数据中属于"字符串常量"的是________。
( A )
3、下列字符串是标识符的是: 。
( C )
4、在下列各项中,运算级别最低的为________。
( B )
5、下列选项中,值为1的表达式是________。
( B )
6、下列类型的数据不可以存储在可变型变量中的是________。
( D )
7、以下程序运行后的输出结果是 main( ) { char s[]="ABCD",*p; for(p=s+1;p<s+4;p++)printf("%s\n",p); }
( D )
8、下列字符串中可以用作c标识符的是________。
( B )
9、字符串指针变量中存入的是________。
( D )
10、若有char s1[]="abc",s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串 s1 大于字符串 s2 时,输出 s2 的语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、下列叙述中正确的是________。
( B )
2、下列说法不正确的是________。
( B )
3、在传值调用中,要求________。
( B )
4、下面的描述中错误的是________。
( B )
5、以下叙述中不正确的是________。
( D )
6、有以下函数:fun(char *a,char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { a++; b++; } return(*a-*b); } 该函数的功能是______。
( C )
7、关于strcmp()函数,下列描述中错误的是________。
( C )
8、阅读以下函数fun(char *sl,char *s2) { int i=0; while(sl[i]==s2[i]&&s2[i]!='\0') i++; return(sl[i]=='\0'&&s2[i]=='\0'); } 此函数的功能是______。
( B )
9、c语言中不可以嵌套的是________。
( C )
10、用户定义的函数不可以调用的函数是()。
七、指针 (共10题,每题1分,共计10分)
( D )
1、有以下程序 void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/ { int t,i,j; for(i=0;i<n一1;j++) for(j=i+1;j<n;j++) if(a[i] } main() { int c[10]={1,2,3,4,5.6,7,8,9,0 },i; fun(c+4.6): for(i=0;i<10;i++)printf("%d,",c[i]); printf("n"): } } 程序运行的结果是________。
( C )
2、以下对二维数组a的正确说明是________。
( C )
3、若有定义语句:int a[2][3],*p[3]; 则以下语句中正确的是________。
( B )
4、定义如下一维数组:int a[5],*p; 则下列描述错误的是________。
( B )
5、int a[5],*p=a; 对a数组元素地址的正确引用是________。
( D )
6、下列关于函数的调用方式,说法不正确的是________?
( A )
7、关于函数参数,说法正确的是________。
( B )
8、下列数据中属于"字符串常量"的是________。
( B )
9、c语言程序中必须有的函数是________。
( B )
10、若执行 fopen 函数时发生错误,则函数的返回值是()。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。 struct node { char data; struct node*next; } a,b,*p=&a,*q=&b;
( C )
2、有以下程序 typedef struct { char name[9]; char sex; float score [2]; } stu; stu f(stu a) { stu b={"zhao", 'm', 85.0, 90.0}; int i; strcpy(a.name, b.name); a.sex=b.sex:; for(i=0;i<2;i++) a.score[i]=b.score[i]; return a: } main() { stu c= { "qian", 'f', 95.0, 92.0 }; stu d=f(c); printf("%s, %c, %2.0f, %2.0f", d.name, d.sex, d.score[0], d.score[1]); ) 程序的运行结果是________。
( A )
3、有以下程序 struct stu { char name[10]; int num; }; void f(char *name, int num) { struct stu s[2]={{"sundan",20044},{"penghua",20045}}; num = s[0].num; strcpy(name, s[0].name); } main() { struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p; p=&s[1]; f(p->name, p->num); printf("%s %d\n", p->name, p->num); } 程序运行后的输出结果是________。
( A )
4、若有下面的说明和定义: struct test { int ml; char m2; float m3; union uu { char ul[5]; int u2[2]; } ua; } myaa; 则sizeof(struct test )的值是________。
( B )
5、下面结构体的定义语句中,错误的是________。
( D )
6、下列选项中属于c语言构造类型的是________。
( D )
7、表达式 *((int *)(p+1)+2)的值时_______. static struct { int x, y[3]; } a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p; p = a+1;
( A )
8、以下叙述中正确的是________。
( A )
9、以下关于 c 语言数据类型使用的叙述中错误的是________。
( D )
10、在说明一个结构体变量时系统分配给它的存储空间是________ 。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、下列程序的输出结果是________。 int b=2: int func(int*a) { b+=*a; return b; } main() { int a=1,t=2; t+=func(&a): printf("%d\n",t); }
( C )
2、有以下程序 #include <stdio.h> int f(int x) { int y; if(x==0||x==1) return (3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是________。
( A )
3、有以下程序 #include <stdio.h> main( ) { int x = 0x13; printf("int:%d\n", x+1); } 程序运行后的输出结果是________。
( D )
4、有如下程序 main( ) { int a[3][3]={{1,2,3},{3,4,5},{5,6,7}}, i,j,s = 0; for(i=0; i<3; i++)for(j=0; j<=i; j++) s+=a[i][j]]; printf("%d\n",s); } 该程序的输出结果是______。
( C )
5、若有以下程序段int m=0xabc,n=0xabc; m-=n; printf("%x\n",m); 执行后输出结果是______。
( C )
6、执行如下程序段,打印输出的内容是________。 #include <stdio.h> void fun (intc, int *d) { c++; (*d)++; } int main ( ) { int a=5, b=9; fun(a, &b); printf("%d, %d",a, b); return 0; }
( D )
7、执行printf("%x",100); 后的输出结果是________。
( A )
8、当执行下面程序且输入:abc时,输出的结果是______。 #include <stdio.h> #include <string.h> main( ) { char ss[10]="12345"; strcat(ss,"6789"); gets(ss); printf("%s\n",ss); }
( B )
9、下列程序的输出结果是________。 main() { char c1=97,c2=98; printf("%d %c",c1,c2); }
( A )
10、下述程序的输出结果是________。 #include<stdio.h> void main() { printf("%f",2.5+1*7%2/4); }
相关标签:
- C语言
- 中国美术学院
- 期末考题