沈阳师范大学C语言
本试卷为沈阳师范大学C语言,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、有定义:"int a=2,b=3,c=4;",则下列选项中值为0的表达式是________。
( C )
2、以下选项中不合法的用户标识符是________。
( C )
3、设有int x=11;则表达式(x+1/3)的值是________。
( D )
4、下列选项中不是字符常量的是________。
( B )
5、表达式k=1*3 ? 2 : 0的值是________。
( B )
6、在64位计算机中,一个字长所占字节数为________。
( D )
7、以下不正确的 c 语言标识符是______。
( C )
8、设有如下定义: struck sk { int a; float b; } data; int *p; 若要使 p 指向 data 中的 a 域,正确的赋值语句是______。
( A )
9、在 c 语言中 , 以下叙述不正确的是 ___________.
( B )
10、条件语句________。
( D )
11、关于异常的含义,下列描述中最正确的一个是________。
( A )
12、下列运算符属于关系运算符的是______。
( A )
13、若x、y、z、m均为int型变量,则执行下面语句后m的值是________。 m=1; x=2; y=3; m=(m<x) ? m : x; m=(m<y) ? m : y; m=(m<y) ? m : z;
( B )
14、无符号二进制数后加上一个0,形成的数是原来的几倍?
( A )
15、对于类型相同的两个指针变量之间,不能进行的运算是________。
( C )
16、以下不能定义为用户标识符的是________。
( C )
17、若ch为char型变量,k为int型变量(已知字符a的ascii十进制代码为97), 则以下程序段的执行结果是________。 ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k);
( D )
18、以下叙述正确的是________。
( C )
19、在下列选项中,不正确的表达式是________。
( B )
20、下列标识符中,不合法的 C语言用户自定义标识符是()。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
( C )
2、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( C )
3、下列说法中不正确的是________。
( C )
4、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( A )
5、switch语句不能用于下列哪种数据类型 ( )
( C )
6、有以下程序 main() { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是________。
( A )
7、有以下程序 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 )
8、分析下列程序: #include<stdio.h> main() { int*p1,*p2,*p; int a=6,b=9; p1=&a; p2=&b; if(a<b) { p=p1; p1=p2; p2=p; } printf("%d,%d",*p1,*p2); printf("%d,%d",a,b); } 程序的输出结果为________。
( A )
9、选择出合法的if语句(设int x,a,b,c;)________。
( C )
10、a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、下列叙述中正确的是________。
( C )
2、有以下程序 #include <stdio.h> main() { int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2) { case 0: switch(a[i]%2) { case 0:a[i]++; break; case 1:a[i]--; } break; case 1:a[i]=0; } for(i=0;i<4;i++) printf("%d ",a[i]); printf("\n"); } 程序运行后的输出结果是________。
( B )
3、下面程序的输出结果是 __________. #include<stdio.h> void main( ) { int x=3; do { printf("%d ",x-=2); } while(!(--x)); }
( B )
4、t为int类型,进入下面的循环之前,t的值为0。while(t=1) {...}则以下叙述中,正确的是________。
( B )
5、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是________。
( D )
6、有以下程序 #include<stdio.h> main () { int i, n; for (i = 0; i < 8; i++) { n = rand () % 5; switch (n) { case 1: case 3: printf ("%d\n", n); break; case 2: case 4: printf ("%d\n", n); continue; case 0: exit (0); } printf ("%d\n", n); } } 以下关于程序执行情况的叙述,正确的是______。
( B )
7、以下程序的功能是计算s=1+12+123+1234+12345。 #include <stdio.h> main() { int t=0,s=0,i; for(i=1;i<=5;i++) { t=i+_____; s=s+t; } printf("s=%d\n",s); } 则______部分是________。
( A )
8、以下关于continue语句的描述中正确的是________。
( C )
9、以下是死循环的程序段是________。
( C )
10、以下描述正确的是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义二维数组的是________。
( C )
2、下述对c语言字符数组的描述中错误的是________。
( C )
3、以下不能对二维数组a进行正确初始化的语句是________。
( C )
4、对二维数组的正确定义是________。
( C )
5、若有以下说明 : char s1[ ]={"tree" } ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
( A )
6、在c语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
( B )
7、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是________。
( C )
8、下面程序的输出结果是________。 #include<stdio.h> main() { char a[]='a','b','c','d','f','g',*p; p=a; printf("%c\n",*p+4); }
( D )
9、以下关于排序算法的叙述中,正确的是________。
( A )
10、若有如下定义和语句,且 0<=i<5,下面( )是对数值为 3 数组元素的引用 int a[]={1,2,3,4,5},*p,i; p=a;
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、c语言中,下列不合法的字符串常量是________。
( C )
2、以下叙述中不正确的是________。
( A )
3、下列字符串是标识符的是: 。
( B )
4、有以下程序 #include<stdio.h> main() { char s[]="012xy\08s34f4w2"; int i, n=0; for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++; printf("%d\n", n); } 程序运行后的输出结果是______。
( C )
5、下列选项中,表示字符串末尾的结束标志是________。
( B )
6、宏定义用于将一个标识符定义为一个
( A )
7、下面不正确的字符串常量是________。
( B )
8、下列数据中属于"字符串常量"的是________。
( A )
9、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。 char x[]="programming"; char y[]="fortran"; int i=0; while (x[i]!='\0'&&y[i]!='\0') if (x[i]==y[i]) printf("%c", _____); else i++;
( A )
10、char a[]="This is a program.";输出前 5 个字符的语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、以下叙述中不正确的是________。
( B )
2、在一个c语言程序中,________。
( C )
3、每个c程序中都必须有且仅有一个________。
( D )
4、下列关于函数参数的叙述中,正确的是________。
( A )
5、c程序的执行是从( )开始执行的
( B )
6、以下叙述中正确的是________。
( A )
7、以下叙述中正确的是______。
( A )
8、下面程序的输出结果是________。 # include <stdio.h> int x=1; void main() { int x=2; printf("%d,",x); if(x==1) { int x=4; printf("%d,",x++); } printf("%d",x++); }
( B )
9、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________。 main() { int *p,*q,a,b; p=&a; printf("input a:"); scanf("%d",*p); }
( A )
10、以下叙述正确的是________。
七、指针 (共10题,每题1分,共计10分)
( A )
1、设int a[10],*p=a; 数组元素a[4]的正确引用是________。
( D )
2、在下面的字符数组定义中,哪一个有语法错误 。
( D )
3、以下叙述不正确的是________。
( D )
4、设有语句: x=inputbox("输入数值","0","示例") 程序运行后,如果从键盘上输人数值10并按回车键,则下列叙述中正确的是______。
( B )
5、某一维数组中依次存放了数据元素12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历"比较"运算的数据元素依次为________。
( C )
6、若定义了以下函数: void f(……) { ……*p=(double*)malloc(10*sizeof(double)); …… } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是______。
( D )
7、下列关于函数的调用方式,说法不正确的是________?
( D )
8、对于 if(表达式)语句,以下说法正确的是________。
( A )
9、下面程序的功能是将字符串s 中所有的字符'c'删除。 #include "stdio.h" main() { char s[80]; int i,j; gets(s); for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ; s[j]='\0'; puts(s); }
( A )
10、C语言程序中,当调用函数时()。
八、结构体 (共10题,每题1分,共计10分)
( C )
1、有以下程序 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]); ) 程序的运行结果是________。
( D )
2、有以下定义和语句 struct workers { int num; char name[20]; char c; srruct { int day; int month; int year; } s; }; struct workers w,*pw; pw=&w 能给w 中year 成员赋1980 的语句是________。
( B )
3、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。 struct stu { int i; int name; } st,*p; p=&st;
( C )
4、以下对结构体类型变量的定义中,不正确的是________。
( C )
5、以下程序的输出结果是 #include<stdio.h> struct st { int x; int *y; } *p; int dt[4]= {10,20,30,40 }; struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main() { p=aa; printf("%d\n",++(p->x)); }
( B )
6、设有以下说明语句: struct stu { int a; float b; } suttype; 则下面叙述不正确的是________。
( D )
7、有如下定义: struct student { char name[10]; int age; char gender; } std[3], *p=std; 则以下各输入语句中错误的是________。
( D )
8、以下叙述中正确的是________。
( A )
9、在下列程序段中,枚举变量c1,c2的值依次是________。 enum color { red, yellow, blue=4, green, white } c1,c2; c1=yellow; c2=white; printf("%d,%d\n",c1,c2);
( A )
10、定义共用体的关键字是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、有以下程序 #include <stdio.h> int main() { int a = 1, b = 2, c = 3, d = 0; if (a == 1 && b++ == 2) if (b != 2 || c-- != 3) printf("%d,%d,%d\n", a, b, c); else printf("%d,%d,%d\n", a, b, c); else printf("%d,%d,%d\n", a, b, c); } 程序运行后的输出结果是________。
( C )
2、有以下程序 # define f(x) (x*x) main() { int i1, i2; i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ; printf("%d, %d\n",i1,i2); } 程序运行后的输出结果是________。
( A )
3、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf("%d\n",i); } 执行后输出结果是________。
( C )
4、有以下程序 #include <string.h> main() { char str[][20]={"hello","beijing"},*p=str; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是________。
( A )
5、有程序: void fun(int a,int b,int c) { a=456; b=567; c=678; } main( ) { int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",z,y,x); } 输出结果是________。
( B )
6、有如下程序 main( ) { int n=8; while(n>6) { n--; printf("%d",n); } } 该程序段的输出结果是______。
( A )
7、有以下程序段int m=0,n=0; char c='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:20b20↙,则输出结果是______。
( D )
8、下面程序 main() { int x=32; printf("%d\n",x=x<<1); } 的输出是______。
( B )
9、下述程序段的运行结果是________。 main( ) { static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][2],i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { b[i][j]=a[j][i]+a[i][j]; printf(''%5d'',b[i][j]); } printf(''\n''); } } 18
( D )
10、以下程序的运行结果是________。 main() { int i=1,sum=0; while(i<10) sum=sum+1; i++; printf("i=%d,sum=%d",i,sum); }
相关标签:
- C语言
- 沈阳师范大学