C语言程序设计模拟试题3附答案.docx
- 文档编号:9833865
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:14
- 大小:19.80KB
C语言程序设计模拟试题3附答案.docx
《C语言程序设计模拟试题3附答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题3附答案.docx(14页珍藏版)》请在冰豆网上搜索。
C语言程序设计模拟试题3附答案
《C语言程序设计》模拟试卷三
一、填空题。
(每空2分,共16分)
1.在内存中,短整型变量占 字节,单精度实型变量占 字节,字符型变量占 字节。
2.一个C语言文件是由若干个 组成。
3.设有以下变量定义,并已赋确定的值
charw;intx;floaty;doublez;
则表达式:
w*x+z-y所求得的数据类型为 。
4.若x为int类型,请以最简单的形式写出与逻辑表达式!
x等价的C语言关系表达式 。
5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。
p和s是基类型为int的指针变量。
请对以下问题进行填空。
a[0]a[1]a[2]a[3]a[4]
22
33
44
55
66
(1)若p已指向存储单元a[1]。
通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是 。
(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 。
二、单项选择题。
(每题2分,共40分)
1.设有intx=11;则表达式(x++*1/3)的值是( )。
A)3 B)4 C)11 D)12
2.下列程序的输出结果是( )。
A)3 B)3.2 C)0 D)3.07
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf(“%d\n”,d*y);
}
3.下列程序执行后的输出结果是(小数点后只写一位)( )。
A)6 6 6.0 6.0 B)6 6 6.7 6.7
C)6 6 6.0 6.7 D)6 6 6.7 6.0
main()
{doubled;floatf;longl;inti;
i=f=l=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
scanf("%d",&d);
}
4.下列变量定义中合法的是( )。
A)short_a=1-.le-1; B)doubleb=1+5e2.5;
C)longdo=0xfdaL; D)float2_and=1-e-3;
5.设intx=1,y=1;表达式(!
x||y--)的值是( )。
A)0 B)1 C)2 D)-1
6.与y=(x>0?
1:
x<0?
-1:
0);的功能相同的if语句是( )。
A)if(x>0)y=1; B)if(x)
elseif(x<0)y=-1; if(x>0)y=1;
elsey=0; elseif(x<0)y=-1;
elsey=0;
C)y=-1 D) y=0;
if(x) if(x>=0)
if(x>0)y=1; if(x>0)y=1;
elseif(x==0)y=0; elsey=-1;
elsey=-1;
7.以下循环体的执行次数是( )。
A)3 B)2 C)1 D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf(“%d\n”,i);
}
8.以下叙述正确的是( )。
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
9.下列程序执行后的输出结果是()。
A)G B)H C)I D)J
main()
{intx=’f’;printf(“%c\n”,’A’+(x-‘a’+1));}
10.执行下面的程序段后,变量k中的值为()。
A)不定值 B)33 C)30 D)10
intk=3,s[2];
s[0]=k;k=s[1]*10;
11.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用是( )。
A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]
12.下列程序执行后的输出结果是( )。
A)6 B)7 C)8 D)9
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5];
a=0;b[0]=3;
func(&a,b);printf(“%d\n”,b[0]);
}
13.下列程序的运行结果是( )。
A)a=%2,b=%5 B)a=2,b=5
C)a=d,b=d D)a=%d,b=%d
#include
main()
{inta=2,c=5;
printf(“a=%d,b=%d\n”,a,c);}
14.下列程序执行后的输出结果是()。
A)3 B)6 C)9 D)随机数
main()
{ inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf(“%d\n”,a[1][2]);
}
15.设有数组定义:
chararray[]=“China”;则数组array所占的空间为( )。
A)4个字节 B)5个字节 C)6个字节 D)7个字节
16.下列程序的输出结果是( )。
A)4 B)6 C)8 D)10
intb=2;
intfunc(int*a)
{b+=*a;return(b);}
main()
{inta=2,res=2;
res+=func(&a);
printf(“%d\n”,res);
}
17.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是()
A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]
18.下列程序的输出结果是( )。
A)5 B)6 C)7 D)8
structabc
{inta,b,c;};
main()
{ structabcs[2]={{1,2,3},{4,5,6}};
intt;
t=s[0].a+s[1].b;
printf(“%d\n”,t);
}
19.若有以下调用语句,则不正确的fun函数的首部是( )。
A)voidfun(intm,intx[]) B)voidfun(ints,inth[41])
C)voidfun(intp,int*s) D)voidfun(intn,inta)
main()
{…
inta[50],n;
…
fun(n,&a[9]);
…
}
20.在C程序中,可把整型数以二进制形式存放到文件中的函数是()。
A)fprintf函数 B)fread函数 C)fwrite函数 D)fputc函数
三、修改下列程序:
(在程序出错的语句下划横线并标号,把修改后的语句写在程序下面的横线上。
)(每小题5分,共10分)
1.下列给定程序的功能是:
读入一个整数(2<=k<=10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出2、3、5、7、11。
#include
#include
*******************************
IsPrime(intn);
{inti,m;
m=1;
for(i=2;i ****************************** if! (n%i) {m=0;contitue;} return(m); } main() {intj,k; clrscr(); printf(“nPleaseenteranintegernumberbetween2and10000: ”); scanf(“%d”,k); printf(“nnTheprimefactor(s)of%dis(are): ”,k); for(j=2;j<=k;j++) if((! (k%j))&(IsPrime(j)))printf("%4d",j); getchar(); }) 2.下列给定程序中,函数fun的功能是: 逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。 例如,若a中的字符串为aBCDeFgH,b中的字符串为: ABcd,则c中的字符串为: aBcdeFgh。 #include #include **************************************** void;fun(char*p,char*q,char*c); *************************************** {intk=1; *************************************** while(*p! =*q) {if(*p<*q)c[k]=*q; elsec[k]=*p; if(*p)p++; if(*q)q++; k++; } K=’\0’; } *************************************** main() {chara[10]=“aBCDeFgh”,b[10]=“ABcd”,c[80]={“”}; fun(a,b,c); printf(“Thestringa: ”);puts(a); printf(“Thestringb: ”);puts(b); printf(“Theresult: ”);puts(c); } 四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。 (每小题4分,共16分) 1. #include voidmain() { charch;intk=0; for(ch=’A’;ch<’H’;ch++,k++) if(k%2==0)printf(“%c”,ch); printf(“\n”); } 输出结果: 2. #include voidmain() { intk=0; charc=’A’; do{ switch(c++) {case‘A’: k++;break; case‘B’: k--; case‘C’: k+=2;break; case‘D’: k=k%2;break; case‘E’: k=k*10;break; default: k=k/3; } k++; }while(c<’G’); printf(“k=%d\n”,k); } 输出结果: 3. #include voidmain() { inta[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++){ for(j=0;j<6;j++)if(a[i]==b[j])break; if(j<6)printf(“%d”,a[i]); } printf(“\n”); } 输出结果: 4. #include voidmain() { inta[8]={1,0,1,0,1,0,1,0},i; for(i=2;i<8;i++)a[i]+=a[i-1]+a[i-2]; for(i=0;i<8;i++)printf(“%d”,a[i]); printf(“\n”); } 输出结果: 五、按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。 (每空1分,共6分) 1.将两个数从小到达输出。 main() {float a,b, ; scanf( ,&a,&b); if(a>b) {t=a; ; b=t; } printf(“Thenumsmalltobig: %d%d”,a,b); } 2.输出购买总价值和数量。 #define 30 main() { ; num=10; total=num*PRICE; printf(“total=%d,num=%d\n”, ); } 六、按要求编写下列程序。 (每题6分,共12分) 1.输出下图。 * * * * * * * * * * 2.编程判断输入的正整数是否既是5又是7的整数倍数。 若是,则输出yes;否则输出no。 《C语言程序设计》模拟试卷三答案 一、填空题。 (每空2分,共16分) 12 4 1 2. 函数 3.double 4. x==0||x==1 5. s=p+3 2 二、单项选择题。 (每题2分,共40分) 1.A2.C3.A4.A5.B 6.A7.C8.D 9.A10.A 11.D12.A13.B14.B15.C 16.B 17.C18.B19.D20.C 三、修改下列程序: (在程序出错的语句下划横线并标号,把修改后的语句写在程序下面的横线上。 )(每小题5分,共10分) 1 IsPrime(intn) if(! (n%i)) scanf(“%d”,&k); 2. voidfun(char*p,char*q,char*c) k=0; while(*p||*q) 四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。 (每小题4分,共16分) 1. ACEG 2. k=8 3. 4252716 4.1022571320 五、按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。 (每空1分,共6分) 1. t “a=%f,b=%f” a=b 2. PRICE intnum ,total total,num 六、按要求编写下列程序。 (每题6分,共12分) 1. main() { inti,j; for(i=0;i<=3;i++) { for(j=0;j<=i;j++) printf("*"); printf("\n"); } getchar(); } 2. main() { intn; printf("请输入整数n: "); scanf("%d",&n); if(! (n%5)||! (n%7)) printf("Yes! "); else printf("No! "); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 模拟 试题 答案