C语言程序设计模拟试题2(附答案)new
- 格式:doc
- 大小:71.50 KB
- 文档页数:20
《C语言程序设计》模拟试卷二
一、填空题。(每空2分,共30分)
1.设有变量说明语句
int x=1,y=2;
则执行下述printf语句的输出结果是______ _____。
printf("%f\n",1.0+x/y);
2.执行下述程序
#include
main()
{
int x,y;
scanf("%2d%*2s%1d",&x,&y);
printf("%d\n",x+y);
}
若从键盘输入
12345671
则程序的输出结果是________。
3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。
#include
main()
{
float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while ( )
{
if (x>amax)
amax=x;
else if (x amin=x; scanf("%f',&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 4.设n 是整型变量,且已具有某正整数值。根据下述数学式 1 114131312121+⋅++⋅+⋅+n n 求s 的值并输出。 可编写如下之程序段实现之。请填空。 int k; double s,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是_________ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y) printf("%d\n",z); } 7.执行下述程序的输出结果是_____ _______。 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是___ ______。 #include main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。 void add(int x,int y,____ ___) { *z=x+y; } 10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; _____________=r; x/=2; } while (x); } 11.以下程序中函数invert实现将数组内所有数组元素的值逆置。比如,执行本程序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while (____ ________) { k=*s; *s=*t; *t=k; s++; t--; } } 12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_____ union aa { float x;