C语⾔程序设计期末考试试题及答案
C语⾔程序设计试题
(2008 /2009 学年第⼆学期)
⼀.选择题(满分30分,每题2分)
都定义为int类型且初值为0,则以下不正确得赋值语句就是 D 。
A、a=b=c+8; B、 a+=y+3;
C、 c++;
D、a+b+c
2、已知int j,i=1;执⾏语句“j=i++;”后,变量i得值就是B .
A、 1 B、 2 C、–1 D、-2
3、执⾏下⾯程序:
#include "stdio、h”
voidmain()
int a=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c);
则输出结果就是: A 。
A、 2,2,4 B、 4,2,3 C、5,5,3 D、4,2,5
4.若要求在if后⼀对圆括号中表⽰a不等于0得关系,则能正确表⽰这⼀关系得表达式为 D 。
A、 a〈〉0
B、!a
C、a=0
D、 a
5、 for (j=0;j〈11;j++);循环结束后,j得值就是 B 。
A、12
B、 11
C、 10
D、 9
6、C语⾔中函数返回值得类型由D决定得。
A、 return语句中得表达式类型
B、调⽤该函数得主调函数得类型
C、调⽤函数时临时决定
D、定义函数时所指定得函数类型
7、下列说法中正确得就是 B 。
A 在调⽤⽤户⾃定义函数时,必须对其进⾏声明.
B 函数可以返回⼀个值,也可以什么值也不返回。
C 说明函数时,必须明确参数得类型与返回值。
D 在程序设计中空函数没有什么作⽤。
8、若int i=10;执⾏下列程序后,变量i得正确结果就是 D 。
switch (i )
{case 0:i+=1;
case 10: i+=1;
case 11: i+=1;
default:i+=1;
A、 10
B、11
C、 12
D、13
9、下列语句中不正确得字符串赋值或初始化得就是 C 。
A.char str[10]={”strings"}; B、char str[8]={’s','t’,'r','i','n’,'g’,'s’,’\0'};
C、char str[10]; str= "strings";
D、charstr[]=”strings";
10、有如下程序:
#include
void main()
{
int a=1,b=0,c=0;
if(a<b)
if (b〈0) c=0;
else c++;
printf (“%d\n”,c);
该程序得运⾏结果就是D。
A、 3 B、 2 C、 1 D、0
11、在函数调⽤,对参数传递得说法正确得就是 A .
A 实参与形参各占⼀个独⽴得存储单元。
B实参与形参始终共⽤⼀个相同得存储单元。
C 可以由⽤户指定实参与形参就是否共⽤⼀个存储单元。
D 可以由系统指定实参与形参就是否共⽤⼀个存储单元
12、以下正确得程序段就是 C 。
A、 char str1[ ]= ”12345", str2[ ]= "abcdef"; strcpy(str 1,str2);
B、char str[10],*st="abcde"; strcat(str, st);
C、char str[10]=””,*st=”abcde"; strcat(str, st);
D、char*st1="12345”, *st2="abcde”;strcat(st1, st2);
13、若有定义:int *p[4];则标识符p B。
A、就是⼀个指向整型变量得指针
B、就是⼀个指针数组名
C、就是⼀个指针,它指向⼀个含有四个整型元素得⼀维数组
D、说明不合法
装订线
14、以下程序得运⾏结果就是 C 。
typedef union
longa[1];
intb[2];
char c[8];
} TEST;
TESTm;
main( )
{
printf(“%d\n”,sizeof(m));
A、32
B、 16
C、 8
D、24
15、设有以下结构体类型:
char??name[8];
int ?num;
float ?s[4];
}student[50];
并且结构体数组student中得元素都已有值,若要将这些元素写到硬盘⽂件中,以下不正确得形式就是 C 。
A、fwrite(student,sizeof(struct st),50,fp);
c语言中structB、fwrite(student,50*sizeof(struct st),1,fp);
C、 fwrite(student,25*sizeof(struct st),25,fp);
D、for(i=0;i〈50;i++)
fwrite(student+i,sizeof(struct st),1,fp);
⼆、填空题(满分20分,每空2分)
,并且只能有⼀个主函数。
2.设x与y均为int型变量,且x=1,y=2,则表达式3+x/y得值为3。
3.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)得值就是 4 .
4.设x=0xAB,若要通过x|y使x低4位置1,⾼4位不变,则y= 0x0F .
5.测试char型变量m得最⾼位数据就是否为1得表达式就是a&0x80。
6.若x=2,y=-3则x&&y得结果就是1。
7.与⼆进制数101等值得⼗进制数为 5 .
8.定义int i=1;执⾏语句 while(i++<5);后,i得值为6。
9.下⾯程序得运⾏结果为22222。
#include 〈stdio、h〉
void main()
{
int i=2,j=5,s;
s=i;
for (;--j;)
s=s*10+i;
printf(“%d",s);
10.写出程序得执⾏结果:i=10,j=11
{ int i=0,j=0;
while (i〈10)
i++;
while (j++<10) ;
printf(“i=%d, j=%d\n”,i,j);
三、读程序写结果(满分16分,每题4分) .
#include〈stdio、h〉
voidmain()
{
int a=0,b=1;
intfun(int a,intb);
printf("%d\n”,fun(a,b));
printf(”%d\n”,fun(a,b));
intfun(intm,int n)
statics=1;
s++;
return(s*(m+n));
}
2
程序运⾏得结果为: 3 。
装订线
2、以下程序得输出结果就是 3,2 。
#include ”stdio、h"
struct?chain
intx;
int y;
struct chain?*p;
}m[2];
void main( )

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。