湖北经济学院C语言期末预测卷
本试卷为湖北经济学院C语言期末预测卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言期末预测卷
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、以下程序的输出结果是________。
#define f(x) x*x
main()
{
int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
( C )
2、有以下程序
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 )
3、设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y; 后,y的值为______。
( C )
4、在下列各项中,运算级别最低的为________。
( C )
5、若调用一个函数,且此函数中没有return语句,则正确的说法是该函数________。
( B )
6、若要定义a为3×4的二维数组,正确的定义语句是________。
( D )
7、已有定义:int i,a[10],*p; 则合法的赋值语句是________。
( B )
8、有下列程序:
main()
{
int i,j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是________。
( A )
9、有以下程序:
main()
{
int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是______。
( B )
10、下列关于字符串的说法中错误的是________。
( A )
11、把十六进制数baf转换成二进制数________。
( A )
12、若有下面的说明和定义:
struct test
{
int m1;
char m2;
float m3;
union uu
{
char u1[5];
int u2[2];
}
ua;
}
myaa;
则sizeof(struct test)的值是________。
( A )
13、以下程序的输出结果是 _______ 。
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;
break;
case 1:b++;
break;
}
case 2:a++;
b++;
break;
}
printf("%d,%d\n",a,b);
}
( C )
14、若有以下语句,则正确的描述是char a[] ="toyou";
char b[] ={′ t′ ,′o′ ,′ y′,′o′ ,′u′ };
( D )
15、若char a[10]; 已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是________。
( A )
16、已知字母a的ascii码为十进制数65,且c2为字符型,则执行语句c2=‘a’+‘6’-‘3’后,c2中的值为________。
( C )
17、下列符号中,可以作为变量名的是________。
( D )
18、在c 的if 语句中,可用作条件的表达式是________。
( D )
19、若int a=3, 则执行完表达式a-=a+=a*a 后,a 的值是________。
( C )
20、以下叙述中正确的是()。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、循环体如果包含一个以上语句,应该用花括弧括起来,以复合语句的形式出现。
( F )
2、c语言中浮点型常量指数表示形式中,字母e或e之前不必有数字。
( T )
3、c 语言程序中可以有多个函数, 但只能有一个主函数。
( T )
4、省略else的if语句的一般形式如下,若表达式的值为"真",则执行语句1; 否则,就什么也不做。if (表达式) 语句1
( T )
5、函数的实参和形参可以是相同的名字
( F )
6、字符串可以存储在字符数组中,也可以存储在字符型指针变量中
( F )
7、以"a"方式打开一个文件时,文件指针指向文件首。
( F )
8、在标准c语言中,字符串是以‘ 0’结束的,故字符串的长度也包括‘ 0’。
( T )
9、在c程序中,不同函数中所定义的变量允许同名
( T )
10、表达式都有运算结果
三、填空题 (共5题,每题4分,共计20分)
1、定义4行3列的整型二维数组a的语句是________。
2、字符串函数________用于从指定的磁盘文件中读出一个字符串。
3、下面程序段中循环体的执行次数是________。
a=10;
b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
4、定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为 ______。
5、如果一个函数无返回值,定义它时函数类型应是______。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序运行后的输出结果是 ________ 。
main()
{
int x=0210;
printf("%x\n",x);
}
2、以下程序的执行结果是____。
#include<stdio.h>
void main()
{
char c='a'+10;
printf("c=%c\n",c);
}
3、执行下列程序段后,输出的a的值是_____________。
main( )
{
int a = 2;
switch(a)
{
case 0: a--;
break;
case 1: a++;
break;
case 2: a=a+5;
break
}
printf("%d",a);
}
4、下面程序的功能是用―辗转相除法‖求两个正整数的最大公约数。请分析程序填空。
#include <stdio.h>
main()
{
int r, m, n;
scanf("%d%d", &m, &n);
if (m < n) ____1___;
r = m % n;
while (r)
{
m = n;
n = r;
r = ____2___;
}
printf("%d\n", n);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:输出fabonacci数列:1,1,2,3,5,8,……的前20项的项值,要求每行输出5个数
2、编写程序:将字符数组a中下标值为奇数的元素从小到大排列,其它元素不变 例如:当a数组中的字符串为:"clanguage"时,程序的输出结果为:cgalgnaue()
3、说明一个枚举类型enummonth它的枚举元素为Jan、Feb、…、Dec。编写能显示上个月名称的函数last_month。例如,输入Jan时能显示Dec。再编写另一个函数printmon用于打印枚举变量的值枚举元素。最后编写主函数调用上述函数生成一张12个月份及其前一个月份的对照表,使用结构体实现
相关标签:
- C语言
- 湖北经济学院
- 期末预测卷