北京印刷学院历年C语言专升本试题
本试卷为北京印刷学院历年C语言专升本试题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言专升本试题
一、理论基础 (共20题,每题1分,共计10分)
( D )
1、设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是________。
( B )
2、表达式k=1*3 ? 2 : 0的值是________。
( C )
3、已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是________。
( C )
4、c语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:
( D )
5、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
( D )
6、已知有变量定义: int a; char c; 用 scanf(" %d%c " ,&a,&c); 语句给 a 和 c 输入数据,使 30 存入 a ,字符‘ b ’存入 c ,则正确的输入是: 。
( A )
7、下列程序段执行后 k 值为 。 int k=0,i,j; for(i=0;i<5;i++) for(j=0;j<3;j++) k=k+1 ;
( C )
8、对于条件表达式(k)(i++):(i--)来说,其中的表达式k等价于( )
( C )
9、当代计算机之所以能自动地连续进行数据处理,主要是由于
( A )
10、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。
( A )
11、十六进制数100转换为十进制数为
( D )
12、若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是________。
( C )
13、结构化程序设计主要强调程序的()
( A )
14、以下是正确 c 语言标识符的是________。
( B )
15、设a为整型变量,下列选项中不能正确表达数学关系:10<a<15________。
( B )
16、以下合法的赋值语句是______。
( B )
17、以下符合c语言语法的赋值表达式是________。
( D )
18、有int x=3,y=4,z=5; 则下面表达式中值为0 的是________。
( C )
19、能正确表示:当x 的取值范围在[1,10] 或[100, 110]内为真,否则为假的表达式是________。
( A )
20、C语言中,char 类型数据占()。
二、控制结构 (共10题,每题1分,共计10分)
( C )
1、在嵌套使用if语句时,c语言规定else总是________。
( B )
2、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( C )
3、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d)y=0; else y=1; 该语句所表示的含义是________。
( C )
4、关于结构化程序设计原则和方法的描述错误的是________。
( C )
5、当从键盘上输入字符"12134211"下面程序的 输出结果是________。 main( ) { char s; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k<=7;k++) { scanf("%c",&s); switch(s) { default: v4++; case '1': v1++; case '3': v3++; case '2': v2++; } } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
( C )
6、若a的值为3时,下列程序段被执行后,c的值是________。 int c = 1; if (a>0) if (a>3) c = 2; else c = 3; else c = 4;
( C )
7、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
( C )
8、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( A )
9、c语言的if语句中,用作判断的表达式为____
( D )
10、在c 的if 语句中,可用作条件的表达式是________。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、语句 for(k=0;k<5;++k) { if(k== 3) continue; printf("%d",k); } 的输出结果为______
( B )
2、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j;
( C )
3、下面程序段的输出结果是 __________. x=3; do { y=x--; if (!y) { printf("*"); continue; } printf("#"); } while(x=2);
( D )
4、流程控制语句的基本控制结构有三种,其中不包括________。
( C )
5、在下列选项中,没有构成死循环的程序段是________。
( C )
6、以下不正确的是 ______。
( B )
7、有如下程序 main() { int x=3; do { printf("%d",x--); } while(!x); } 该程序的执行结果是______。
( B )
8、以下程序运行后的输出结果是 _______ 。 main( ) { int i=0,s=1; for (;;) { if (i==5) break; i++; s+=i; } ; printf("%d\n",s); }
( B )
9、以下叙述中正确的是________。
( C )
10、执行下列程序后,i的值是________。 int i,x; for(i=1,x=1;i<20; i++) { if (x>=10) break; if(x%2==1) { x+=5; continue; } x-=3; }
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是________。 #define N 5 void fun(int x[N]) { int m; for(m=N-t;m>=O;m-)scanf("%d",________); }
( B )
2、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( B )
3、若有定义:int w[3][5]; 则以下不能正确表示该数组元素的表达式是________。
( C )
4、以下正确的程序段是________。
( A )
5、以下选项中,不能正确赋值的是 ______。
( D )
6、下列二维数组的说明中,不正确的是________。
( C )
7、与实际参数为实型数组名相对应的形式参数不可以定义为________。
( D )
8、若有定义:int b[5]; 则以下对b 数组元素的正确引用是________。
( D )
9、具有相同类型的指针变量p与数组a,不能进行的操作是________。
( B )
10、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。 #include <stdio.h> main() { int a, b, t; scanf("%d%d", &a, &b); while (_________) { if (a > b) { t = a; a = b; b = t; } printf("%d,%d\n", a, b); scanf("%d%d", &a, &b); } }
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
( B )
2、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( D )
3、下列字符串中,正确的c标识符是________。
( A )
4、以下选项中合法的c语言字符常量是________。
( B )
5、有以下程序 #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); } 程序运行后的输出结果是______。
( D )
6、有以下程序 void fun(char s[][10],int n) { char t;int i,j; for(i=0;i<N-1;I++) for(j=i+1,j<N;J++)} /*比较字符串的首字符大小,并交换字符 串的首字符*/ if(s[i][0])>s[j][0]){ t=s[i][0];s[i][0]=s[j][0];s[j][0]=t; } main() { char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”}; fun(ss,5);printf(”%s,%s”,ss[0],ss[4]); } 程序运行结果是________。
( A )
7、下列对字符串的定义中,错误的是________。
( C )
8、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( A )
9、下面不能正确进行字符串赋值操作的语句是________。
( B )
10、以下语句中,不能实现回车换行的是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、#define能作简单的替代,用宏来替代计算多项式5*X*x 4-5*x+5的值的函数f,正确的宏定义语句为( )。
( D )
2、对下面程序段,描述正确的是________。 for(t=1;t<=100;t++) { scanf("%d",&x); if (x<0) continue; printf("%d\n",t); }
( B )
3、一个 c 语言程序总是从 开始执行。
( C )
4、若有函数max(a,b),为了让函数指针变量p指向函数max,当调用该函数时,正确的赋值方法是________。
( A )
5、若有下面的函数调用: fun(a+b,3,max(n-1,b)) 则fun的实参个数是________。
( A )
6、以下叙述中正确的是______。
( B )
7、以下程序中函数f的功能是:当flag为1时,进行由小到大排序; 当flag为0时,进行由大到小排序。 void f (int b[],int n,int flag) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(flag?b[i]>b[j]:b[i]<b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } } main() { int a[10]={5,4,3,2,1,6,7,8,9,10}, i; f(&a[2],5,0); f(a,5,1); for(i=0;i<10;i++) printf("%d,",a[i]); } 程序运行后的输出结果是______。
( A )
8、以下叙述中错误的是________。
( B )
9、为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
( C )
10、下面叙述中错误的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、以下叙述中不正确的是________。
( B )
2、有如下函数调用语句 func(rec1,rec2+rec3,rec4, rec5); 该函数调用语句中 , 含有的实参个数是 __________.
( B )
3、在函数调用过程中,如果函数funa调用了函数funb,函数funb又调用了函数funa,则 ________。
( B )
4、有以下程序 #include<stdio.h> int fun(int a,int b) { if(b=0)return a; else return(fun(--a,--b)); } main() { printf("%d\n",fun(4,2)); } 程序的运行结果是________。
( A )
5、下列程序的输出结果是________。 int f1(int x,int y) { return x>y?x:y; } int f2(int x,int y) { return x>y?y:x; } main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf("%d,%d,%d\n",e,f,g); }
( A )
6、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2))); 则输出结果是______。
( D )
7、以下语句或语句组中,能正确进行字符串赋值的是________。
( D )
8、假定int类型变量占用4个字节,若有定义:int x[10]= {0,2,4}则数组x在内存中所占字节数是______。
( A )
9、有说明语句int a[4][5]; 则a[2]+3表示__。
( C )
10、要调用数学函数时,在 #include命令行中应包含____。
八、结构体 (共10题,每题1分,共计10分)
( D )
1、有以下定义和语句 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 的语句是________。
( D )
2、有以下程序 #include <stdio.h> struct tt { int x; struct tt*y; } *p; struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a}; main() { int i; p=a; for(i=1;i<=2,i++) { printf("%d,",p->x); p=p->y; } } 程序的运行结果是________。
( A )
3、程序中有下面的说明和定义 struct abc { int x ; char y ; } struct abc s1 , s2 ; 则会发生的情况是______。
( A )
4、下列描述说明正确的是________。
( A )
5、下列选项中不属于c语言的数据类型是________。
( B )
6、递归算法的执行过程一般来说可先后分成______和______两个阶段。
( B )
7、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是 struct node char data; struct node*next; a,b,*p=&a,*q=&b;
( D )
8、设有以下说明语句: typedef struct stu { int a; float b; } stutype; 则下面叙述中错误的是________。
( D )
9、下面定义结构变量的语句中错误的是________。
( C )
10、下面说法正确的是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、有以下程序: main() { int x=102,y=012; printf("%2d,%2d\n",x,y); } 执行后输出结果是________。
( B )
2、有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); } 程序执行后的输出结果是________。
( C )
3、下列程序的输出结果是 __________. #include <stdio.h> void main() { char b[]="abcdefg"; char p=0; while(p<7) putchar(b[p++]); putchar('\n'); }
( B )
4、下列程序执行后的输出结果是 main() { int a[3][3],*p,i; p=&a[0][0]; for(i=1;i<9;i++) p[i]=i+1; printf("%d\n",a[1][2]); }
( C )
5、以下c程序正确的运行结果是________。 #include<stdio.h> void main() { long y=-43456; printf("y=%d\n",y); printf("y=%-08ld\n",y); printf("y=%08ld\n",y); printf("y=%+8ld\n",y); }
( A )
6、有以下程序 #include <stdlib.h> main() { char *p,*q; p=(char *)malloc(sizeof(char)*20); q=p; scanf("%s%s",p,q); printf("%s%s\n",p,q); } 若从键盘输入:abc def↙,则输出结果是______。
( C )
7、有以下的代码 int a[4]= {1,2,3,4 }; int *p=a; p++; ++p; printf("%d",*p); 的输出结果是________。
( A )
8、以下程序的输出结果是________。 #include<stdio.h> main() { int i=10,j=10; printf("%d,%d\n",++i,j--); }
( D )
9、下面程序的运行结果是________。 #include <stdio.h> main() { int i, b, k = 0; for (i = 1; i <= 5; i++) { b = i % 2; while (b-- >= 0) k++; } printf("%d,%d", k, b); }
( D )
10、以下程序段的输出结果是()。 char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
相关标签:
- C语言
- 北京印刷学院
- 专升本试题