天津商业大学C语言专升本
本试卷为天津商业大学C语言专升本,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言专升本
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、有以下程序段 int j; float y; char name[50]; scanf("%2d%f%s",&j,&y,name); 当执行上述程序段,从键盘上输入55566 7777abe后,y的值为( )。
( A )
2、语句while(!e); 中的表达式!e等价于( )。
( D )
3、表达式3.6-5/2+1.2+5%2的值是________。
( D )
4、英文小写字母d的ascii码为100,英文大写字母d的ascii码为
( C )
5、若 x=0 , y=3 , z=3, 以下表达式值为 0 的是________。
( D )
6、设int b=2; 表达式(b<<2)/(b>>1)的值是________。
( A )
7、以下程序段中与语句k=a>b ? (b>c ? 1:0):0; 功能等价的是________。
( C )
8、设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是________。
( C )
9、用高级程序设计语言编写的程序称为________。
( B )
10、下列赋值语句错误的是________。
( A )
11、若有说明语句:char c=‘\72’; 则变量c________。
( A )
12、某c语言程序中,x是一个浮点型变量,m是一个值为正整数的整型常量,表达式x%m(x被m除取余数)在 (1) 时会报错,这是一种 (2) 错误。(1)处填________。
( C )
13、下面判断正确的是________。
( C )
14、下列标识符,不合法的是________。
( A )
15、以下选项中不能作为c语言合法常量的是______。
( D )
16、c语言表达式( )的值不等于1。
( C )
17、该语句打印结果为(每个d后都有空格)printf("%d ", printf("%d ", printf("%d ", 43)));
( B )
18、执行下面的程序段int x=5; char z='a'; int b; b=((x&15)&&(z<'a') ); 后,b的值为________。
( C )
19、以下数据中,不正确的数值或字符常量是()。
( B )
20、下列标识符中,不合法的 C语言用户自定义标识符是()。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
( A )
2、有如下程序: main () { int x = 1, a = 0, b = 0; switch (x) { case 0: b++; case 1: a++; case 2: a++; b++; } printf ("a = %d, b = %d\n", a, b); } 该程序的输出结果是________。
( A )
3、以下程序的输出结果是 main() { int a=0,i; for(i=;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); }
( A )
4、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
( D )
5、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( A )
6、switch语句不能用于下列哪种数据类型 ( )
( C )
7、有以下程序 main() { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是________。
( C )
8、下述语句中,_____中的if语句语法是错误的。 ( )
( A )
9、分析下列程序: #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); } 程序的输出结果为________。
( B )
10、将三个数排序需要比较________次。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、若 i 为整型变量 , 则以下循环语句的循环次数是 ____. for(i=2;i==0;) printf("%d",i--);
( A )
2、下列关于宏操作的叙述错误的是________。
( A )
3、下列关于continue和break的描述正确的是________。
( D )
4、若a、b为int型变量,则执行以下语句后a的值为( ) a=1; b=10; do { b-=a; a++; } while(b-->0);
( D )
5、有以下程序 main() { int i=0,s=0; for(;;) { if(i==3‖i==5) continue; if(i==6) break; i++; s+=i; } ; printf("%d\n",s); } 程序运行后的输出结果是________。
( C )
6、运行下面程序时,从键盘输入字母h,则输出结果是 #include<stdio.h> main() { char ch; ch=getchar(); switch(ch) { case ’h’: printf("hello!\n"); case ’g’: printf("good morning!\n"); default : printf("bye_bye!\n"); } }
( B )
7、设有以下程序段: int k=0; while(k=1) k--; 则以下叙述中正确的是________。
( B )
8、下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空。 #include <stdio.h> #include <math.h> main() { int a, b, c, d; scanf("%d", &a); for (b = 3, b <= a / 2; b += 2) { for (c = 2; c <= sqrt(c); c++) if (b % c == 0) break; if (c > sqrt(b)) d = ________; else continue; for (c = 2; c <= sqrt(d); c++) if (d % c == 0) break; if (c > sqrt(d)) printf("%d=%d+%d\n", a, b, d); } }
( C )
9、下面程序的运行结果是________。 main( ) { int cl=2,c2=0; while(!c2--)printf(''%d%d'',cl--,c2); }
( A )
10、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、若已定义: int a[4][3]=(1,2,3,4,5,6,7,8,9,10,1i,12),(*prt) [3]=a,*p=a[0];则能够正确表示数组元素a[1][2]的表达式是________。
( D )
2、有数组:char a[ ]="this is an egg"; 。请问该数组到底占了几个字节?
( A )
3、下面关于数组的初始化正确的是________。
( C )
4、关于数组的叙述中,下列说法不正确的是________。
( B )
5、二维数组a的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若a按行先存储,元素a[8,5]的起始地址与当a按列先存储时的元素( )的起始地址相同。设每个字符占一个字节。
( D )
6、下面关于数组的描述错误的是________。
( D )
7、已知三个字符为a、z和8,按它们的ascii码值升序排序,结果是________。
( A )
8、以下能正确定义二维数组的是______。
( A )
9、已定义两个字符数组a,b,则以下正确的输入格式 是________。
( A )
10、若有如下定义和语句,且 0<=i<5,下面( )是对数值为 3 数组元素的引用 int a[]={1,2,3,4,5},*p,i; p=a;
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下正确的字符串常量是________。
( C )
2、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( D )
3、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
( D )
4、表达式x+1>x是________。
( A )
5、下列哪个是c语言的有效标识符
( B )
6、设有以下程序段: int a[5]=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是________。
( A )
7、下列合法的字符型常量是________。
( B )
8、字符串"xyz"在内存占用的字节数是______。
( A )
9、下面不正确的字符串常量是________。
( A )
10、char a[]="This is a program.";输出前 5 个字符的语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、有以下程序片段: y=-1; if(x!=0) if(x>0) y=1; else y=0; 其能正确表示的数学函数关系是________。
( B )
2、下列函数定义中,会出现编译错误的是________。
( D )
3、设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是________。
( A )
4、c 语言的基本构成单位是: 。
( C )
5、若有以下调用语句,则不正确的fun函数的首部是________。 main() { … int a[50],n; … fun(n, &a[9]); … }
( C )
6、函数的值通过return语句返回,下面关于return语句的形式描述错误的是________。
( B )
7、若有以下说明和定义 fun(int*c) { ... } main() { int(*a)()=fun,(*b)(),w[10],c; } 在必要的赋值之后,对fun()函数的正确调用语句是______。
( D )
8、有以下程序: voidf(int *x,int * y) { int t; t= *x; *x= *y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a; q=&a[7]; while(p) { f(p,q); p++; q--; } for(i=0;i<8;i++)printf("%d,",a[i]); } 程序运行后的输出结果是______;
( C )
9、sizeof(float)是________。
( D )
10、一个c语言程序是由____构成。
七、指针 (共10题,每题1分,共计10分)
( C )
1、对下述程序的判断中,正确的是________。 main() { char*p,s[256]; p=s ; while(strcmp(s,"the end")) { printf("input the string:"); gets(s); while(*p) putchar(*p++); } }
( B )
2、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为________.
( B )
3、下列数据中为字符串常量的是________。
( C )
4、若调用一个函数,且此函数中没有return语句,则正确的说法是该函数________。
( B )
5、以下程序段的执行结果为 #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); }
( A )
6、设有以下函数 f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______。 main() { int a=2,i; for(i=0;i<3;i++)printf("%d\n"f(a)); }
( B )
7、有以下程序段:char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要给 c1、c2、c3 分别输入字母 a bc,则以下对输入形式的描述正确的是________。
( A )
8、经过下列的语句 int j,a[10],*p; 定义后,下列语句中合法的是________。
( C )
9、若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为________。
( A )
10、以下叙述中正确的是________。
八、结构体 (共10题,每题1分,共计10分)
( C )
1、有以下程序 struct stu { char name[10]; int num; int score; } ; main( ) { struct stu s[5]={{"yangsan",20041,703} , {"lisiguo",20042,580 , {"wangyin",20043,680}, {"sundan",20044,550}, {"penghua",20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->score>p[j]->score) { t=p[i]; p[i]=p[j]; p[j]=t; } printf("5d %d\n",s[1].score,p[1]->score); } 执行后输出结果是________。
( C )
2、设有以下说明语句 struct stu { int a ; float b ; } stutype ; 则下面的叙述不正确的是______。
( C )
3、以下对 c 语言中共用体类型数据的叙述正确的是______。
( C )
4、设 struct data { int a; float b; } c,*p=&c; ,引用正确的是________。
( C )
5、设有以下语句: typedef struct tt { char c; int a[4]; } cin; 则下面叙述中正确的是________。
( D )
6、有以下结构体说明、变量定义和赋值语句 struct std { char name[10]; int age; char sex; } s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是________。
( B )
7、下列程序的输出结果是________。 #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 )
8、设有如下说明: typedef struct { int n; char c; double x; } std; 则以下选项:能正确定义结构体数组并赋初值的语句是________。
( C )
9、下面哪个不是关键字?
( A )
10、在C语言中,下面那种数据类型不属于构造类型____
九、程序题 (共10题,每题1分,共计10分)
( C )
1、若有以下程序: main() { int k=2,i=2,m; m=(k+=i*=k); printf("%d,%d\n",m,i); } 执行后的输出结果是________。
( A )
2、有以下程序 main( ) { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"} ; printf("%d\n",strlen(p[4])); } 执行后输出结果是________。
( B )
3、语句 int i=2.8*6; 中整型常量i定义后赋初值的结果是________。
( C )
4、若有如下定义并赋值: char ch='a', a; 则执行语句"printf("%d",a=ch+2.6); "后的输出结果是________。
( D )
5、有以下程序 main() { char a,b,c,*d; a='\'; b='\xbc'; c='\0xab'; d="\0127"; printf("%c%c%c%c\n",a,b,c,*d); } 编译时出现错误,以下叙述中正确的是________。
( B )
6、程序片段:short i=65536; printf("%d\n",i); 的输出结果是________。
( B )
7、有以下程序 void f(int *q) { int i=0; for( ;i<5;i++) (*q)++; } main() { int a[5]={1,2,3,4,5},i; f(a); for(i=0;i<5;i++) printf("%d,",a[i]); } 程序运行后的输出结果是______。
( C )
8、有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) { int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } main() { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。
( B )
9、以下程序的运行结果是________。 main( ) { int a=5 ,p; if(p=a!=0)printf( "n%"d,p); elseprintf("%d\n",p+2); }
( D )
10、main() { int x=3,i; for(i=0;i<3;i++) printf(""%d"",f(x)); } int f(int a) { int b=0; static c=3; b++; c++; return(a+b+c); } 执行此程序后屏幕上显示的结果是________。
相关标签:
- C语言
- 天津商业大学
- 专升本