北京印刷学院历年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语言
- 北京印刷学院
- 专升本试题