河北经贸大学历年计算机C语言专升本练习

本试卷为河北经贸大学历年计算机C语言专升本练习,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

计算机C语言专升本练习

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、执行下列程序后,变量a,b,e的值分别是________。 int x--5,y=4;
int a,b,e;
a=(--x==y++)?x;
++y;
b=++x;
c=y;
A、a=5,b=5,c=5
B、a=4,b=5,c=5
C、a=5,b=6,c=5
D、a=1,b=5,C=6
(  D  )
2、下列4个关于c语言的结论中错误的是________。
A、可以用do while语句实现的循环一定可以用while语句实现
B、可以用for语句实现的循环一定可以用while语句实现
C、可以用while语句实现的循环一定可以用for语句实现
D、do-while语句与while语句的区别仅是关键字“while”出现的位置不同
(  B  )
3、若有以下语句:
typedef struct s
{
int g;
char h;
} t;
以下叙述中正确的是________。
A、可用S定义结构体变量
B、可用T定义结构体变量
C、S是struct类型的变量
D、T是struct S类型的变量
(  C  )
4、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:________。
A、switch
B、continue
C、break
D、if
(  D  )
5、已知 short int 类型变量占用两个字节 , 若有定义 : short int x[10]={ 0,2,4 }; 则数组 x 在内存中所占字节数是 __________.
A、3
B、6
C、10
D、20
(  A  )
6、在c语言中,变量的隐含存储类别是________。
A、auto
B、static
C、extern
D、无存储类别
(  A  )
7、若有下面的函数调用: fun(a+b,3,max(n-1,b)) 则fun的实参个数是________。
A、3
B、4
C、5
D、6
(  A  )
8、假设px和py分别表示x和y商品的价格,当边际替代率mrsxy>px/py,消费者为达到最大效用,他将会________。
A、增加X商品的购买,减少Y商品的购买
B、减少X商品的购买,增加Y商品的购买
C、同时增加或者减少X和Y商品的购买
D、对X和Y商品的购买数量不发生改变
(  C  )
9、以下程序的输出结果是
#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));
}
A、10
B、11
C、51
D、60
(  A  )
10、以下程序的输出结果为______。
#include<stdio.h>
main()
{
int m=7,n=4;
float a=20.0,b=10.0,x;
x=m/2+n*a/b+1/4;
printf("%f\n",x);
}
A、11.000000
B、11
C、11.250000
D、11.750000
(  B  )
11、以下关系表达式中,其值为true的是________。
A、"XYZ">"XYz"
B、"VisualBasic"<>"visualbasie"
C、"the"="there"
D、"Integer"<"Int\
(  A  )
12、以下叙述中正确的是________。
A、字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组
B、char ca[3][4]={"A","BB","CCC"};是不合语法的
C、char ca[][5]={"A","BB","CCC"};是不合语法的
D、char *ca[3]= {"A","BB","CCC"};是不合语法的
(  A  )
13、已定义两个字符数组a,b,则以下正确的输入格式 是________。
A、scanf("%s%s", a, b);
B、get(a, b);
C、scanf("%s%s", &a, &b);
D、gets("a"),gets("b");
(  A  )
14、下列字符数组长度为5的是________。
A、char a[]={'h', 'a', 'b', 'c', 'd'};
B、char b[]= {'h', 'a', 'b', 'c', 'd', '\0'};
C、char c[10]= {'h', 'a', 'b', 'c', 'd'};
D、char d[6]= {'h', 'a', 'b', 'c', '\0' };
(  A  )
15、下面程序的输出结果是________。
m1(int x)
{
int y;
y=x*x;
return(y);
}
m2(int a ,int b)
{
int l;
l=m1(a-b);
return(l);
}
main( )
{
int p=2,q=4,t;
t=m2(p ,q);
printf("%d",t);
}
A、4
B、6
C、8
D、12
(  A  )
16、c语言的if语句嵌套时,if与else的配对关系是________。
A、每个else总是与它上面的最近的并且尚未与其他else匹配的if配对
B、每个else总是与最外层的if配对
C、每个else与if的配对是任意的
D、每个else总是与它上面的if配对
(  B  )
17、变量的指针含意是指变量的____
A、值
B、地址
C、存储
D、名字
(  B  )
18、若以下变量均是整型, 且num=sum=7;
则计算表达式sum=num++,sum++,++num 后sum的值为____
A、7
B、8
C、9
D、10
(  A  )
19、结构体类型的定义允许嵌套是指()。
A、成员是已经或正在定义的结构体型
B、成员可以重名
C、结构体型可以派生
D、定义多个结构体型
(  C  )
20、以下叙述中正确的是()。
A、在程序的一行上可以出现多个有效的预处理命令行
B、使用带参的宏时,参数的类型应与宏定义时的一致
C、宏替换不占用运行时间,只占编译时间
D、在以下定义中 C R 是称为"宏名"的标识符 #define C R 045

二、填空题 (共10题,每题2分,共计20分)

1、c语言本身不提供输入输出语句,输入和输出操作是由________来实现的。
2、a为整型,求(a=4*5,a*2),a+6;的最后结果
3、局部变量的作用域是从定义的位置起,到( )结束止。
4、以下程序的输出结果是________。
main()
{
int a=-1, b;
if(a<0) b=2*a+1;
else b=2*a-1;
printf("%d",b);
}
5、函数实参的传递分为
6、下面程序的功能是求1111的个、十、百位上的数字之和。请分析程序填空。
#include<stdio.h>
main()
{
int i,s=1,m=0;
for(i=1;i<=11;i++) s=s*11%1000;
do
{
m+= 【1】________;
s=【2】________;
}
while(s);
printf("m=%d\n",m);
}
7、若有定义: int a[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2] 得到的初值是【1】, a[2][1] 得到的初值是【2】。
8、下面程序的运行结果是________。
main()
{
int a[2][3]={{1,2,3},{4,5,6}}, int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)printf("%5d",b[i][j]);
printf("\n");
}
}
9、C语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型、函数名和______。
10、break语句通常用于______中。

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2、编写程序:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
3、编写程序:使用结构体,创建一个长度为n的链表。