模拟练习1.docx
- 文档编号:26426944
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:15
- 大小:19.18KB
模拟练习1.docx
《模拟练习1.docx》由会员分享,可在线阅读,更多相关《模拟练习1.docx(15页珍藏版)》请在冰豆网上搜索。
模拟练习1
模拟练习1
一、选择题(
(1)--(20)每小题1分,(21)--(30)每小题2分,共40分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将选项正确在答题卡相应位置上标出。
(1)、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
A)有零个或多个输入B)有零个或多个输出
C)有穷性D)可行性
(2)、以下叙述中正确的是()
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
(3)、以下符合C语言语法的实型常量是()
A)1.2E0.5B)3.14.159EC).5E-3D)E15
(4)、以下4组用户定义标识符中,全部合法的一组是()
A)_mainB)IfC)txtD)int
enclude-maxREALk_2
sinturbo3COM_001
(5)、若以下选项中的变量已正确定义,则正确的赋值语句是()
A)x1=26.8%3B)1+2=x2C)x3=0x12D)x4=1+2=3;
(6)、设有以下定义
inta=0;
doubleb=1.25;
charc=’A’;
#defined2
则下面语句中错误的是()
A)a++;B)b++C)c++;D)d++;
(7)、设有定义:
floata=2,b=4,h=3;,以下C语言表达式与代数式(a+b)h/2计算结果不相
符的是()
A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)
(8)、有以下程序
main()
{
intx=102,y=012;
printf(“%2d,%2d\n”,x,y);
}执行后输出结果是()
A)10,01B)02,12C)102,10D)02,10
(9)、以下4个选项中,不能看作一条语句的是()
A){;}B)a=0,b=0,c=0;C)if(a>0);D)if(b==0)m=1;n=2;
(10)、设有定义:
inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
A)scanf(“%d”,pa);B)scanf(“%d”,a);
C)scanf(“%d”,&pa);D)scanf(“%d”,*pa);
(11)、以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等价的是()
A)if((a>b)&&(b>c))k=1;B)if((a>b)||(b>c))k=1
elsek=0;
C)if(a<=b)k=0;D)if(a>b)k=1;
elseif(b<=c)k=1;elseif(b>c)k=1;
elsek=0;
(12)、有以下程序
main()
{chark;inti;
for(i=1;i<3;i++)
{scanf(“%c”,&k);
switch(k)
{case‘0’:
printf(“another\n”);
case‘1’:
printf(“number\n”);
}
}
}
程序运行时,从键盘输入:
01<回车>,程序执行后的输出结果是()
A)anotherB)anotherC)anotherD)number
numbernumbernumbernumber
anothernumber
(13)、有以下程序
main()
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}程序执行后的输出结果是()
A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5
(14)、有以下程序
main()
{inti,s=0;
for(i=1;i<10;i+=2)s+=i+1;
printf(“%d\n”,s);
}程序执行后的输出结果是()
A)自然数1~9的累加和B)自然数1~10的累加和
C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
(15)、有以下程序
main()
{inti,n=0;
for(i=2;i<5;i++)
{do
{if(i%3)continue;
n++;
}while(!
i);
n++;
}
printf(“n=%d\n”,n);
}程序执行后的输出结果是()
A)n=5B)n=2C)n=3D)n=4
(16)、若程序中定义了以下函数
doublemyadd(doublea,doubleb)
{return(a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
A)doublemyadd(doublea,b);B)doublemyadd(double,double);
C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,doubley);
(17)、有以下程序
charfun(charx,chary)
{if(x returny; } main() {inta=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,b),fun(b,c))); }程序的执行结果是() A)函数调用出错B)8C)9D)7 (18)、设有定义: intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是() A)p=1;B)*q=2;C)q=p;D)*p=5; (19)、有以下程序 voidf(intv,intw) {intt; t=v;v=w;w=t; } main() {intx=1,y=3,z=2; if(x>y)f(x,y); elseif(y>z)f(y,z); elsef(x,z); printf(“%d,%d,%d\n”,x,y,z); }执行后输出结果是() A)1,2,3B)3,1,2C)1,3,2D)2,3,1 (20)、有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是() A)5B)6C)8D)9 (21)、有以下程序 main() {chara[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d%d\n”,sizeof(a),sizeof(b)); }执行后输出结果是() A)77B)88C)810D)1010 (22)、有以下程序 voidswap1(intc[]) {intt; t=c[0];c[0]=c[1];c[1]=t; } voidswap2(intc0,intc1) {intt; t=c0;c0=c1;c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(a);swap2(b[0],b[1]); printf(“%d%d%d%d\n”,a[0],a[1],b[0],b[1]); }其输出结果是() A)5353B)5335C)3535D)3553 (23)、有以下程序 voidsum(int*a) {a[0]=a[1];} main() {intaa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)sum(&aa[i]); printf(“%d\n”,aa[0]); }执行后的输出结果是() A)4B)3C)2D)1 (24)、有以下程序 intf(intb[][4]) {inti,j,s=0; for(j=0;j<4;j++) {i=j; if(i>2)i=3-j; s+=b[i][j]; } returns; } main() {inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(a)); }执行后的输出结果是() A)12B)11C)18D)16 (25)、有以下定义 #include chara[10],*b=a; 不能给数组a输入字符串的语句是() A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b); (26)、有以下程序 main() {char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4])); }执行后输出结果是() A)2B)3C)4D)5 (27)、有以下程序 inta=2; intf(int*a) {return(*a)++;} main() {ints=0; {inta=5; s+=f(&a); } s+=f(&a); printf(“%d\n”,s); }执行后输出结果是() A)10B)9C)7D)8 (28)、有以下程序 #definef(x)x*x main() {inti; i=f(4+4)/f(2+2); printf(“%d\n”,i); }执行后输出结果是() A)28B)22C)16D)4 (29)、设有以下语句 typedefstructs {intg;charh;}T; 则下面叙述中正确的是() A)可用s定义结构体变量B)可以用T定义结构体变量 C)s是struct类型的变量D)T是structs类型的变量 (30)、有以下程序 strucstu{ charname[10]; intnum; }; voidf1(structstuc) {structstub={“LiSiGuo”,2042}; c=b; } voidf2(structstu*c) {structstub={“SunDan”,2044}; *c=b; } main() {structstua={“YangSan”,2041},b={“WangYin”,2043}; f1(a);f2(&b); printf(“%d%d\n”,a.num,b.num); }执行后的输出结果是() A)20412044B)20412043C)20422044D)20422043 二、填空题(每空2分,共30分),请将每空的正确答案写在答题卡上【1】~【15】序号的横线上。 (1)、已知字符A的ACSII码值为65,以下语句的输出结果是【1】 charch=’B’; printf(“%c%d\n”,ch,ch); (2)、有以下语句段 intn1=10,n2=20; printf(“【2】”,n1.n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 (3)、有以下程序 main() {intt=1,i=5; for(;i>=0;i--)t*=i; printf(“%d\n”,t); }执行后输出结果是【3】。 (4)、有以下程序 main() {intn=0,m=1,x=2; if(! n)x-=1; if(m)x-=2; if(x)x-=3; printf(“%d\n”,x); }执行后输出结果是【4】。 (5)、有以下程序 #include main() {charch1,ch2;intn1,n2; ch1=getchar();ch2=getchar(); n1=ch1-‘0’;n2=n1*10+(ch2-‘0’); printf(“%d\n”,n2); }程序运行时输入: 12<回车>,执行后输出结果是【5】。 (6)、有以下程序 voidf(inty,int*x) {y=y+*x;*x=*x+y;} main() {intx=2,y=4; f(y,&x); printf(“%d%d\n”,x,y); }执行后输出的结果是【6】。 (7)、函数fun的功能是计算xn doublefun(doublex,intn) {inti;doubley=1; for(i=1;i<=n;i++)y=y*x; returny; } 主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算: m=a4+b4-(a+b)3。 实现这一计算的函数调用语句为【7】。 (8)、下面rotate函数的功能是: 将n行n列的矩阵A转置为A’,例如: 123415913 5678261014 当A=9101112则A’=371115 13141516481216 请填空 #defineN4 voidrotate(inta[][N]) {inti,j,t; for(i=0;i for(j=0;【8】;j++) {t=a[i][j]; 【9】; a[j][i]=t; } } (9)、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。 请填空。 voidsstrcpy(char*s,char*t) {while(*s++=【10】);} main() {charstr1[100],str2[]=”abcdefgh”; sstrcpy(str1,str2); printf(“%s\n”,str1); } (10)、下列程序的运行结果是: 【11】 #include>string.h> char*ss(char*s) {returns+strlen(s)/2;} main() {char*p,*str=”abcdefgh”; p=ss(str);printf(“%s\n”,p); } (11)、下面程序的运行结果是: 【12】 intf(inta[],intn) {if(n>1)returna[0]+f(&a[1],n-1); elsereturna[0]; } main() {intaa[3]={1,2,3},s; s=f(&aa[0],3);printf(“%d\n”,s); } (12)、以下程序中给指针p分配三个double型动态内存单元,请填空。 #include main() {double*p; p=(double*)malloc(【13】); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf(“%f%f%f\n”,p[0],p[1],p[2]); } (13)、以下程序的运行结果是【14】 #include typedefstructstudent{ charname[10]; longsno; floatscore; }STU; main() {STUa={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d; d=a; if(strcmp(a.name,b.name)>0)d=b; if(strcmp(c.name,d.name)>0)d=c; printf(“%ld%s\n”,d.sno,p->name); } (14)、以下sum函数的功能是计算下列级数之和。 S=1+x+x2/2! +x3/3! +........+xn/n! 请给函数中的各变量正确赋初值。 doublesum(doublex,intn) {inti;doublea,b,s; 【15】 for(i=1;i<=n;i++) {a=a*x;b=b*i;s=s+a/b;} returns; } 三、编程题(共三道题, (1)、 (2)每小题9分,(3)小题12分,共30分),将程序写在答题卡的背面。 (1)编程,输入一个整数,打印出它是奇数还是偶数。 (2)编程统计输入的一行中大写字母的个数。 (3)编写函数把数组中所有奇数放到另一数组中返回。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 练习