C语言程序设计试题A.docx
- 文档编号:8468107
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:11
- 大小:18.89KB
C语言程序设计试题A.docx
《C语言程序设计试题A.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题A.docx(11页珍藏版)》请在冰豆网上搜索。
C语言程序设计试题A
贵州大学2006-2007学年第一学期考试试卷A
C语言程序设计
注意事项:
1.请考生按要求在试卷装订线内填写姓名、学号和年级专业。
2.请仔细阅读各种题目的回答要求,在规定的位置填写答案。
3.不要在试卷上乱写乱画,不要在装订线内填写无关的内容。
4.满分100分,考试时间为120分钟。
题号
一
二
三
四
五
六
七
总分
统分人
得分
得分
评分人
一、选择题(共30分,每小题2分)
1.在计算机中,一个字节所包含二进制位的个数是()
A)2B)4C)8D)16
2.以下()是C语言提供的合法数据类型关键字
A)FloatB)ChARC)IntgerD)unsigned
3.以下选项中合法的字符常量是()
A)“B”B)‘\010’C)68D)D
4.设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是()printf(”%d,%d\n”,x--,--y);
A)10,2B)9,3C)9,2D)10,3
5.以下程序的输出结果是()
main()
{inta=3;
printf(“%d\n”,(a+=a-=a*a));
}
A)–6B)12C)0D)–12
6.设有如下程序段:
intx=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是()
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B)运行时产生出错信息
C)输出值为2002
D)输出值为2003
7.以下不能正确定义二维数组的选项是()
A)inta[2][2]={{1},{2}};
B)inta[2][]={{1,2},{3,4},{5,6}};
C)inta[2][2]={{1},2,3};
D)inta[][2]={1,2,3,4};
8.能正确计算变量a所占内存字节数的表达式是()
unionU
{charst[4];
inti;
longl;
};
structAA
{intc;
unionUu;
}a;
A)sizeof(U)B)5sizeof(l)C)sizeof(AA)D)sizeof(u)
9.对于以下递归函数f,调用f(4),其返回值为()
intf(intn)
{if(n>0)
returnf(n-1)+n;
else
return0;
}
A)10B)11C)0D)以上均不是
10.以下程序的运行结果是()
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inti=10,j=13,k;
k=10*MIN(i,j);
printf(“%d\n”,k);
}
A)10B)130C)100D)13
11.设有inti;则表达式i=1,++i,++i||++i,i的值为()
A)4B)3C)2D)1
12.以下程序的运行结果是()
charstr[]=”ABC”,*p=str;
printf(“%d\n”,*(p+3));
A)67B)0C)字符‘C’的地址D)字符‘C’
13.以下程序的运行结果是()
main()
{chara[]=”language”,b[]=”programe”;
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)!
=*(p2+k))
printf(“%c”,*(p1+k));
}
A)gaeB)lanugC)languageD)programe
14.以下程序的运行结果是()
main()
{intx[5]={1,3,5,7,9},*p,**pp;
p=x;pp=&p;
printf(“%d”,*(p++));
printf(“%d\n”,**pp);
}
A)33B)15C)13D)35
15.若有以下说明和语句,则下面表达式中值为1002的是()
structstudent
{intnum;
intage;
};
structstudentstu[3]={{1001,20},{1002,19},{1003,21}};
structstudent*p;
p=stu;
A)(p++)->numB)(p++)->ageC)(*p).numD)(*++p).num
得分
评分人
二、填空题(共10分,每小题1分)
1.设有以下变量定义,并已赋确定的值,则表达式:
w*x+z-y所求得的数据类型为
charw;intx;floaty;doublez;
2.当a=5,b=4,c=2时,表达式a>b!
=c的值为
3.用for循环打印147101316192225,其语句应为
for(i=1;i<=9;i++)printf(“%3d”,)
4.执行完下列语句段后,i值为______
inti,j;
j=10*(i=5);
i+=j*=i+2;
5.表达式~3&(2&3^4)的值为_______________
6.若有定义:
inta[3][4]={{1,2},{3,7,5},{4,6,8,10}};则a[1][2]的值为,a[2][1]的值为
7.若有以下定义和语句,则++(*p)的值为
inta[4]={0,1,2,3},*p;
p=&a[1];
8.若有定义:
inta[3][3]={2,4,6,8,10,12,14,16,18},(*p)[3];p=&a[1]则a[1][0]的值是,*(*(p+1)+1)的值是
9.对于charc;若已知其值为小写字母,将其转换为相应大写字母的表达式为
10.若有以下定义和语句,则p+1表示
ints[2][3]={0},(*p)[3];p=s;
得分
评分人
三、分析程序,写出结果(共18分,每小题3分)
1.#include
voidmain(void)
{intnum=0;
while(num<=2)
{num++;printf(“%d\n”,num);}
}
2.#include
voidmain(viod)
{inta,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf(“s=%d”,s);
}
3.#include
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
voidmain(viod)
{intx=2,y=4;
f(y,&x);
printf(“%d%d\n”,x,y);
}
4.#include
voidmain(void)
{inti,j,row,col,m;
inta[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};
m=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]>m)
{m=a[i][j];row=i;col=j;}
printf(“m=%d,row=%d,col=%d\n”,m,row,col);
}
5.#include
intf(intn)
{staticints=2;
while(n)s*=n--;
returns;
}
voidmain(void)
{inti,j;
i=f
(2);j=f(3);
printf("\nTheoutputof3.5is:
\n");
printf("i=%dj=%d\n",i,j);
}
6.#include
voidmain(void)
{intb[2][3]={2,4,6,8,10,12};
inta[2][3]={2,3,4,4,5,6};
int*p,k;
p=a[0];
for(k=0;k<6;k++)
{printf(“%4d”,*p);
p++;
}
}
得分
评分人
四、指出下面程序中的错误并改正(注:
每题仅有一个错误.共10分,每小题2分)
1.#include
voidmain(void)
{c;
c=getchar();
putchar(c);
}
2.#include
voidmain(void)
{char*str;
*str=”abc”;
printf(“%s\n”,str);
}
3.#include
voidmain(void)
{charx=’a’;
printf(“%f\n”,x=x<<=1);
}
4.#include
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
voidmain(void)
{inta,*b,c;
scanf(“%d,%d”,&a,&b);
c=max(a,*b);
printf(“max=%d”,c);
}
5.#include
voidmain(void)
{inta,b;
scanf(“%d%d”,a,b);
a=a+b;
printf(“%d\n”,a);
}
得分
评分人
五、在下面程序中横线处填上适当字句,使其能正确执行(共12分,每小题4分)
1.有以下程序段:
s=1.0;
for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
请填空,使下面的程序段的功能完全与之相同。
s=0.0;d=1.0;k=0;
do
{s=s+d;
_________;
d=1.0/(k*(k+1));
}
while(______);
printf(“%f\n”,s);
2.以下程序的功能是:
通过指针操作,找出3个整数中的最小值并输出
#include
voidmain(viod)
{int*a,*b,*c,num,x,y,z;
a=&x;b=&y,c=&z;
scanf(“%d%d%d”,a,b,c);
num=*a;
if(*a>*b);
if(num>*c);
printf(“num=%d\n”,num);
}
3.请仔细阅读程序段A,在程序段B中空栏中填入正确的内容,使程序段A与B有相同的功能。
程序A:
intf(intn)
{
if(n<=1)
returnn;
else
returnf(n-1)+f(n-2);
}
intf(intn)
{
_______;
t0=0;t1=1;t=n;
while(______)
{
t=____;
t0=t1;
t1=t;
n--;
}
return____;
}
得分
评分人
六、编程(共20分,第1小题8分,第2小题12分)
1.编写一程序用于计算1-22+32-42+…+992-1002
2.下面findmax函数将找出数字中的最大元素及下标值和地址值。
请按下编写*findmax()函数。
int*findmax(int*s,intt,int*k)
{
}
main()
{inta[10]={12,23,34,45,56,67,,78,89,11,22},k,*add;
add=findmax(a,10,&k);
printf(“%d,%d,%0\n”,a[k],k,add);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 试题