武汉大学信息管理学院2005?2006学年第一学期
《C 语言》期末考试试卷(A )
年级 _______ 专业 ________________ 学号 _____________ 姓名 ___________
2、 在一个C 源文件中,若定义一个只允许本文件中所有函数使用的全局变量,则该变量需要使用 的存储
类别是 ________________
以下for 循环执行时,内循环体的总的执行次数是 for (i=5;i;i--)
for(j=0;j<4;j++) {
A 、 20
B 、 24
C 、 25 D
、 30
8、 现定义一个二维数组c[M][N]存放字符串“ China ” “Tinajin ”,“Education ”,贝U ,常量M 和
N 的合理取值是 _________
A 、3 和 9
B 、2 和 10
C 、4 和 9
D 、3 和 10 9、 在定义int a[3][6] 后,第16个元素是 __________ A 、a[2][3] B 、a[1][3] C 、a[3][1] D 、a[4][2]
一、 选择:(20分)
1、 char str[]= “
A 、 14
B 、7
””;函数 strlen(str)
C 、9
的计算结果是 ____________
D 、10 3、 4、 5、
A 、extern
B 、register
C 、auto D
以下对结构体变量stu1中成员age 的非法引用是
struct stude nt { int age; int num; } stu1,*p; P=&stu1;
A 、stu1.age B
以下语句输出结果是
int a=110,b=017;
printf( “ %x,%d A 、6e,15 B 、 正确的k 的值是_
、student.age p->age D static 、(*P).age 6、 ,a++,b++);
6e,16 C
6f,15 、6f,16
enum {a,b=5,c,d=4,e} k; k=e; A 、3 B int a=4,b=5,t=0;
if (a>b) t=a , a=b ,b=t; printf( “ %d,%d ,a,b); 此程序段的输出结果是 _________
、5,4 B 、4,5 C
、5, 、4,
10、若定义int a,b,*p1= &a,*p2=&b; 使p2指向a的赋值语句是_____
A 、*p2=&a;
B 、p2=&p1;
C 、p2=&*p1;
D 、p2=*&a;
读程序写结果:(20分)
2、
{
int x,float y;
scanf( %3d%'f, &x,& y);
printf( x=%d,y=%f\n ”,x,y);
}
执行程序时输入12345口678
三、下面的程序用来将十进制数转化为二进制数,例如输入一个整型数10,则输出
1010,请在下列空白出填空。(15分)
mai n()
{ int a, e[10],c,i=0;
sca nf( %d, );
while( a!=0)
{ c= ; _____________
a=a/2;
e[i]=c;
i++;
}
for ( _________ ) _________________
printf(%(”,e[i-1]);
}
3、int m=13;
int fun 2(i nt x, int y)
{ int m=3; return (x*y-m);
}
mai n()
{ int a=7,b=5;
printf( %d\n”,fu n2(a,b)/m);
}
int sub(i nt a)
{ int c;
c= ; ____________
return c;
}
四、程序设计:(45分)
1、编写一程序,任意输入4个整数,要求按从大到小的顺序输出。
2、编写一程序,输入10个学生的成绩存放在数组中,统计最高分、最低分和平均
分。(利用函数调用完成)
3、编写一程序,将两个字符串连接起来,不用strcat函数。