长春工业大学C语言冲刺卷
本试卷为长春工业大学C语言冲刺卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言冲刺卷
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、设有条件表达式:(exp)? i++ ; j—,则以下表达式中与(exp)完全等价的是________。
( A )
2、若有定义语句: int a[4][10],*p,*q[4]; 且0<=i<4,则错误的赋值是________。
( B )
3、以下定义语句中,错误的是 __________.
( A )
4、已知year为整型变量,不能使表达式(year%4==0&&year%100!=o)||year%400==0的值为"真"的数据是______。
( C )
5、以下定义语句中正确的是________。
( A )
6、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的c语言表达式是 ______ 。
( A )
7、假设int类型的变量x、y和z,它们的初始值分别为10、20和30,则布尔表达式x<10‖y>10&&z<10的值为______。
( B )
8、微处理器按其字长可以分为________。
( C )
9、下列选项中,合法的变量名是______。
( D )
10、已知int a=6; 则执行a+=a-=a*a; 语句后,a的值为________。
( C )
11、若已定义x和y是整型变量,x=2; 则表达式y=2.75+x/2的值是________.
( A )
12、若有定义int a = 1,b = 2, c = 3, d = 4,则表达式a<b?a:c<d?a:d的结果为________。
( D )
13、在16位编译器环境下,double类型占多少字节?
( B )
14、设ch是char型变量,其值为a,且有下面的表达式ch=(ch>='a'&&ch<='z')?(ch+32):ch 。上面表达式的值是______。
( B )
15、下列运算符中,优先级最低的是________。
( C )
16、下面不是c 语言整形常数的是________。
( C )
17、表达式:10!=9的值是________。
( D )
18、已知int i; float f; 正确的语句是________。
( A )
19、若定义语句: int b[ ]= { 1,2,3,4,5},*p=b ; 则表达式*p++ 的值是________。
( C )
20、下列选项中,不正确的赋值语句是_______
二、控制结构 (共10题,每题1分,共计10分)
( B )
1、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( A )
2、下列程序的输出结果是________。 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); }
( B )
3、c语言对嵌套if语句的规定是:else总是与( ) 。
( C )
4、若a的值为3时,下列程序段被执行后,c的值是________。 int c = 1; if (a>0) if (a>3) c = 2; else c = 3; else c = 4;
( D )
5、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( C )
6、下述语句中,_____中的if语句语法是错误的。 ( )
( C )
7、下列程序的输出结果是______。 #include<stdio.h> main() { int a=0,b=1,c=2; if(++a>0 || ++b>0) ++c; printf("%d,%d,%d",a,b,c); }
( C )
8、c语言中下面哪个不是条件语句?
( D )
9、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
( B )
10、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、在"先判断后工作"的循环程序结构中,循环体执行的次数最少是________次。
( D )
2、可以作为自定义标识符的是________。
( A )
3、下列各循环语句中,不是死循环的是________。
( A )
4、以下for语句中不是死循环的是________。
( D )
5、有以下程序: #include<stdio.h> main() { int i=0,a=0; while(i<20) { for(;;) { if((i%5)==0)break; else i--; } i+=13,a+=i; } printf("%d\n",a); } 程序的输出结果是________。
( A )
6、以下叙述中正确的是________。
( B )
7、下面程序输出的结果为________。 #include <stdio.h> int main() { int s=3; switch(s) { case 5: printf("我"); break; case 4: printf("是"); case 3: printf("好"); case 2: printf("学"); break; default: printf("生"); } }
( A )
8、设n 为整型变量,则循环语句for(n=10;n > 0;n--) 的循环次数为________。
( B )
9、设 j 和 k 都是 int 类型,则 for 循环语句 for(j=0,k=-1;k=1;j++,k++) printf("****\n");()。
( C )
10、以下程序段中,能够正确地执行循环的是()。
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、以下对一维数组a的正确说明是________。
( C )
2、以下关于数组的描述正确的是______。
( B )
3、设 p1 和 p2 是指向同一个 int 型一维数组的指针变量, k 为 int 型变量,则不能正 确执行的语句是______。
( B )
4、设矩阵a是一个n×n对称矩阵.即a[i,j]=a[i,j],为了节省存储空间,将其下三角部分按行序为主序存放在一维数b[1...n(n+1)/2]中,对任一下三角元素aij(i≥j),在一维数组b的下标位置k的值是______。
( A )
5、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
( D )
6、以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空: #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++) if(s[p]>s[*k])________; } main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("%d,%d\n",k,a[k]); }
( C )
7、若有定义语句:int m[ ]= {5,4,3,2,1},i=4; 则下面对m数组元素的引用中错误的是______。
( C )
8、char a[10]; 不能将字符串"abc"存储在数组中的是________。
( A )
9、若有 int a[10], *p=a; ,且 a 数组已赋值,则与 a[4]不等价的表达式为________。
( A )
10、定义如下变量和数组: int k,a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是________。for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、下列字符串中不能作为c标识符使用的是________。
( C )
2、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
( B )
3、以下程序段的执行结果为 #define PLUS(X,Y)X+Y main() { int x=1,y=2,z=3,sum; sum=PLUS(x+y,z)*PLUS(y,z); printf("SUM=%d",sum); }
( C )
4、以下能将字符串,you are luck!正确读入的语句组是________。
( A )
5、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
( D )
6、下列字符串中可以用作c标识符的是________。
( C )
7、顺序执行下列程序语句后,则b的值是 string a="hello"; string b=a.substring(0,2);
( D )
8、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个______
( D )
9、判断字符串a 和b 是否相等,应当使用。
( B )
10、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、设有说明double(*p1)[n]; 其中标识符p1是________。
( B )
2、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为________.
( D )
3、在说明语句:int *f( ); 中,标识符f代表的是________。
( C )
4、程序流程图中指有箭头的线段表示的是________。
( C )
5、若有函数 max ( a , b ),并且已使函数指针变量 p 指向函数 max ,当调用该函数时, 正确的调用方法是______。
( C )
6、当用户要求输入的字符串中含有空格时,应使用的输入函数是________。
( B )
7、在函数说明时,下列不必要的是________项。
( A )
8、对于函数声明 void fun(int a[1],int*b); 以下叙述中正确的是________。
( B )
9、c语言源程序的基本单位是________。
( D )
10、fwrite函数的一般调用形式是________。
七、指针 (共10题,每题1分,共计10分)
( B )
1、若有说明: int i,j=7, *p=&i; 则与i=j; 等价的语句是________。
( A )
2、定义如下变量和数组: int i; int x[3][3]={ 1,2,3,4,5,6,7,8,9 } 则下面语句的输出结果是________。 for(i=0;i<3;i++) printf("%d",x[i][2-1]);
( C )
3、在下列各项中,运算级别最低的为________。
( B )
4、所有在函数中定义的变量及函数的形式参数,都属于________。
( A )
5、二维数组a[8][9]按行优先顺序存储,若数组元素a[2][3]的存储地址为1087,a[4][7]的存储地址为1153,则数组元素a[6][7]的存储地址为 ( )
( B )
6、在c语言中,不允许有常量的数据类型是________。
( B )
7、以下叙述中正确的是________。
( C )
8、若有下列定义,则对a数组元素的正确引用是________。 int a[5],*p=a;
( D )
9、下面说法中错误的是________。
( D )
10、int a[10]; 合法的数组元素的最小下标值为____
八、结构体 (共10题,每题1分,共计10分)
( B )
1、struct ex { int x ; float y; char z ; } example; 则下面的叙述中不正确的是________。
( B )
2、以下对枚举类型名的定义中正确的是______。
( C )
3、以下关于c语言数据类型的叙述中正确的是________。
( A )
4、c语言中用于定义类的关键字是________。
( B )
5、下列程序的输出结果是________。 #include <stdio.h> struct abc { int a, b, c, s; } ; main () { struct abc s[2] = { {1, 2, 3}, {4, 5, 6} }; int t; t = s[0].a + s[1].b; printf ("%d\n", t); }
( A )
6、有以下程序 struct stu { char num[10]; float score[3]; } ; main( ) { struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p; int i; float sum=0; p=s+1; for(i=0;i<3;i++)sum=sum+p->score[i]; printf("%.3f\n",sum); } 程序运行后的输出结果是___________。
( D )
7、设有以下说明语句: typedef struct stu { int a; float b; } stutype; 则下面叙述中错误的是________。
( A )
8、以下关于逻辑运算符两侧运算对象的叙述中正确的是________。
( A )
9、以下关于 c 语言数据类型使用的叙述中错误的是________。
( A )
10、在C语言中,下面那种数据类型不属于构造类型____
九、程序题 (共10题,每题1分,共计10分)
( C )
1、下列程序的运行结果是________。 int y=5,x=14; y=((x=3*y,x+1),x-1); printf("x=%d,y=%d",x,y);
( B )
2、下列程序的输出结果是________。 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j =0; while(i++<7) if(p[i]%2)j+=p[i]; printf("%d\n",j); }
( A )
3、以下程序的输出结果是________。 int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d=0; for(i=0;f(s[8]);i++)d+=s[i]; printf("%d\n",d); }
( D )
4、阅读下面的程序 main() { int i,j; scanf("%3d%2d",&i,&j); printf("i=%d,j=%d\n",i,j); } 如果从键盘上输入1234567<回车>,则程序的运行结果是________。
( D )
5、阅读下面的程序 #include<stdio.h> main() { char c1,c2; c1=getchar(); c2=c1+3; printf("%c,%d\n",c2,c2); } 已知'a'的ascii的值为65,如果从键盘上输入 d<回车> 则程序的运行结果是________。
( A )
6、以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s));
( C )
7、下面程序 void prtv(int *x) { ++*x; printf("%d\n",*x); } main() { int a=24; prtv(&a); } 的输出是______。
( D )
8、下述程序的输出结果是________。 main() { int b[]={2,4,6,8,10,12}; int*p=b,**q=&p; printf(”%d,”,*(p++)); printf(”%d,”, **q); }
( D )
9、请读程序: main() { static int a[]={1,2,3,4,5,6} int *p; int i; p=a; *(p+3)+=2; printf(""n1=%d,n2=%d\n:"",*p,*(p+3)); } 其输出是________。
( C )
10、执行以下程序后的输出结果是________。 int w=3,z=7,x=10; printf("%d",x>10?x+100:x-10); printf("%d",w++||z++); printf("%d",!w>z); printf("%d",w&&z);
相关标签:
- C语言
- 长春工业大学
- 冲刺卷