C语言程序设计模拟试题7附答案.docx
- 文档编号:7271970
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:15
- 大小:20.75KB
C语言程序设计模拟试题7附答案.docx
《C语言程序设计模拟试题7附答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题7附答案.docx(15页珍藏版)》请在冰豆网上搜索。
C语言程序设计模拟试题7附答案
《C语言程序设计》模拟试卷七
一、填空题。
(每空2分,共30分)
1.下述算术表达式的结果值是___ __。
(int)(13.7+25.6)/4%4
2.设整型变量value的值为20。
执行下述程序段的输出结果是 。
if(value>=3)
if(value>100)
printf("Error:
value>100.\n");
else
printf("Error:
value<3.\n");
3.对于下述程序段
intb,c;
floata;
scanf("%f,%d,c=%d",&a,&b,&c);
若欲使a、b、c的值分别为5.0、4、3,则应按如下形式输入数据:
_ __。
4.设int类型变量占内存两个字节,今有变量说明语句
inta=20;
则执行下述printf语句的输出结果是___ _。
printf("%d,%0,%x,%u\n",a,a,a,a);
5.执行下述程序的输出结果是_____ ______。
#include
main()
{
intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i/2;
printf("%d\n",k);
}
6.执行下述程序的输出结果是__ _。
#include
main()
{
inti=0;
charx[]="China";
chary[]="Chinese";
while(x[i]!
='\0'&&y[i]!
='\0')
if(x[i]==y[i])
printf("%c",x[i++]);
else
i++;
printf("\n");
}
7.下述函数定义的功能是:
把两个整数指针所指的存储单元中的内容进行交换。
请填空。
voidexchange( )
{
intt;
t=*y;
*y=*x;
*x=t;
}
8.设有如下变量说明语句
inta[8]={44,55,12,42,94,18,6,67},*p=a;
则通过指针变量p引用值为18的表达式是____ 或 ____。
9.执行下述程序
#include
intstrlength(chara[],charb[])
{
intnum=0,n=0;
while(*(a+num)!
='\0')
num++;
while(b[n])
{
*(a+num)=b[n];
num++;
n++;
}
return(num);
}
main()
{
charstr1[81],str2[81],*p1=str1,*p2=str2;
gets(p1);
gets(p2);
printf("%d\n",strlength(p1,p2));
}
若从键盘输入
qwerty
abcd
则输出结果是____ ___。
10.下面的函数定义是一个求阶乘的递归调用函数。
假定n≠0。
请填空。
longfac(intn)
{
longf;
if(n==0)
f=1;
else
f=___ ____;
return(f);
}
11.下述程序的功能是:
输入n值,输出高度为n的、由字符'*'组成的直角三角形,例如当n=4时的输出图形如下(最后一行前面没有空格):
*
**
***
****
请填空。
#include
voidfunc(charc,intn)
{
if(n>0)
{
printf("%c",c);
func(c,n-1);
}
}
main()
{
inti,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
____ ___;
printf("\n");
}
}
12.执行下述程序的输出结果是 。
#include
#defineCOMPstructcomplex
COMP
{
floatre;
floatim;
};
voidplus(COMP*z1,COMP*z2,COMP*z3)
{
z3->re=z1->re+z2->re;
z3->im=z1->im+z2->im;
}
main()
{
COMPa,b,c;
a.re=7.0;
a.im=4.0;
b.re=-2.0;
b.im=5.5;
plus(&a,&b,&c);
printf("c=%5.lf+%5.lfi\n",c.re,c.im);
}
13.以下程序在运行时输入
10 20 30
则输出结果是___ __。
#include
intfunc(inta,intb,intc)
{
return(a+b+c);
}
main()
{
intx,y,z;
printf("Enterx,y,z:
");
scanf("%d%d%d",&x,&y,&z);
z=func(x,x+y,func(x,x+y,z));
printf("z=%d\n",z);
}
14.下面的程序把从终端读入的文本(用字符'@'作为文本结束标志)逐个字符复制到一个当前磁盘目录下名为bi.dat的新文本文件中。
请填空。
#include
#include
main()
{
FILE*fp;
charch;
if((fp=fopen("bi.dat","w"))==NULL)
{
printf("Can'topenfilebi.dat.\n");
exit(0);
}
while((ch=getchar())!
='@')
;
fclose(fp);
}
15.执行下述程序的输出结果是 。
#include"stdio.h"
intabc(intu,intv);
intabc(intu,intv)
{intw;
while(v)
{w=u%v;u=v;v=w;}
returnu;
}
main()
{inta=24,b=16,c;
c=abc(a,b);
printf("%d\n",c);
}
二、单项选择题。
(每题1分,共20分)
1.在计算机上可以直接运行的程序是写【 】
A.高级语言程序 B.汇编语言程序
C.机器语言程序 D.C语言源程序
2.下列符号串中,合法的C语言标识将是【 】
A._121 B.121_ C.a.121 D.#121
3.下列符号串中,合法的十进制整型常量是【 】
A.09876 B.0x9876 C.9.876*e4 D.-9876
4.设有关变量已经正确定义并赋值,则下列表达式中符合C语言语法规则的是【 】
A.a_=\12 B.a_1=a_2+=12 C.int13.5%2 D.a=b+7=C-2
5.若整型变量x的值为8,则下列表达式中值为1的表达式是【 】
A.x+=x-=x=x B.x%=x-1 C.x%=x%=3 D.x/=x+x
6.字符串"m\x43\\\np\102q"的长度是【 】
A.7 B.9 C.15 D.16
7.设有定义语句“inta=10,*p=&a;”,则表达式“a十*p”的值是【 】
A.10 B.20 C.100 D.语法出错
8.若有定义语句“intx,*p=&x,**ppx=&px;”,则下列表达式中错误的是【 】
A.x=*px B.x=**ppx C.px=&ppx D.*ppx=&x
9.如果某个函数在定义时,省略了存储类型,则默认的存储类型是【 】
A.auto B.void C.extern D.static
10.能正确定义一个用来指向打开文件的文件型指针变量fp的语句是【 】
A.filefp; B.file*fp; C.FILEfp; D.FILE*fp;
11.函数fopen()的返回值不能是【 】
A.NULL B.O C.1 D.某个内存地址
12.以只写方式打开一个二进制文件,应选择的文件操作方式是【 】
A."a+" B."w+" C."rb" D."Wb"
13.设有定义语句“charch='\77';”,则下列说法中正确的是【 】
A.ch中含有1个字符 B.ch中含有2个字符
C.ch中含有3个字符 D.语法出错
14.设有函数调用语句“f(x1,x1+x2,(x1,x2));”,正确的说法是【 】
A.调用的实际参数是2个 B.调用的实际参数是3个
C.调用的实际参数是4个 D.调用时会出现语法错误。
15.计算平方数时不可能引起二义性的宏定义是【 】
A.#defineSOR(x)x*x B.#defineSQR(x)(x)*(x)
C.#defineSQR(x)(x*x) D.#defineSQR(x)((x)*(x))
16.执行下列程序段后,x的位是【 】
inta=8,b=7,c=6,x=1;
if(a>6)if(b>7)if(c>8)x=2;elsex=3;
A.O B.1 C.2 D.3
17.执行下列程序段后,变量y的值为【 】
intx[]={1,2,3,4},y,*p=&x[1];
y=(*--P)++;
A.1 B.2 C.3 D.4
18.能正确表达逻辑关系“-1<x<1并且-1<y<1”的表达式是【 】
A.(-1<x<1)&&(-1<y<1)
B.(-1<x<1)&(-1<y<1)
C.((-1<x)¦¦(x<1))&&((-1<y)¦¦(y<1))
D.(-1<x)&&(x<1)&&(-1<y)&&(y<1)
19.函数调用时,下列说法中不正确的是【 】
A.若用值传递方式,则形式参数不予分配内存
B.实际参数和形式参数可以同名
C.主调函数和被调用函数可以不在同一个文件中
D.函数间传送数据可以使用外部全局变量
20.下列关于结构型变量的定义语句中,错误的是【 】
A.typedefstructCCC B.#defineGGGstruct
{charname[20];GGGCCC {charname[20];
intage; intage;
}GGG; };
GGGabc; GGGCCCabc;
C.struct D.struct
{charname[20]; {charname[20];
intage; intage;
}ccc; }abc;
CCCabc;
三、程序分析题(每题8分,共32分)
1.写出执行下述程序的输出结果。
#include
main()
{
inta=2,b=4,c=5;
switch(a>0)
{
inta=2,b=4,c=5;
switch(a>0)
{
case1:
switch(b=b>>2)
{
case1:
printf("@");
case0:
printf("!
");
default:
printf("?
");
}
case0:
swith(c==5)
{
case0:
printf("*");break;
case1:
printf("#");break;
dafault:
printf("$");
}
default:
printf("&");
}
printf("\n");
}
2.写出执行下述程序的输出结果。
#include
#defineN5
main()
{
inti,j,cent;
for(cent=1;cent<=N;cent++)
{
for(i=1;i<=N-cent+5;i++)
printf("");
for(j=1;i<=cent;j++)
printf("%d",j));
for(j=cent-1;j>=1;j--)
printf("%d",j);
printf("\n");
}
}
(注:
第一行1前面有9个空格,以下类推)
3.阅读下述程序,设输入如下数据
8 5 7 9 4
请写出输出结果。
#include
#defineN5
main()
{
inti,j,k,1;
inta[N];
for(i=0;i scanf("%d",&a[i]); for(i=N-1;i>=0;i--) { k=a[N-1]; for(j=N-2;j>=0;j--) a[j+1]=a[j]; a[0]=k; for(1=0;1 printf("%3d",a[1]); printf("\n"); } } 4.写出执行下述程序的输出结果。 #include main() { chars[]="ABCDE",*p; for(p=s;p printf("%s\n",p); } 四、程序设计题(每小题9分,共18分) 1、编写程序,从键盘输入一个字符序列(以字符'#'作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。 然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。 2、编写一程序,从键盘输入10个实数,计算并输出算术平均值。 模拟试卷七参考答案 一、填空题。 (每空2分,共30分) 1)1 2)Error: value<3. 3)5.0,4,c=3 4)20,24,24,20 5)8 6)Chin 7)int*y,int*x 8)p[5]或*(p+5) 9)10 10)n*fac(n-1) 11)func('*',i) 12)c=5+10i 13)z=110 14)fputc(ch,fp) 15)8 二、单项选择题。 (每题1分,共20分) 1.C2.A3.D4.B5. B 6A7.B8.C9.A10.D 11.C 12.C13.A14.B15.D 16.D17.A18.D19.A20.C 三、程序分析题(每题5分,共30分) 1.输出结果如下: 400-4-3 2.输出结果如下: 1 21 321 4321 ) 3.输出结果如下: 48579 94857 79485 57948 85794 4.输出结果如下: ABCDE BCDE CDE DE E 5.读下列程序,写出程序的主要功能。 #include”dos.h” main() {structdatetoday; intn,year1; getdate(&today); scanf("%d",&year1); while((n=today.da_year-year1)>=0) {printf("age=%d\n",n); scanf("%d",&year1); } } 6.阅读下列程序,写出程序运行的输出结果。 char*f(pl,p2) char*pl,*p2; {char*pp1=p1,*pp2=p2,ch; while(*pp1! ='\0') {for(ch='0';ch<*pp1;ch++) *pp2=*(pp1+1),pp2++; ppl=ppl+2; } *pp2='\0'; return(p2); } main() {charsl[10]={"la2b3c"},s2[20],*p; p=f(sl,s2); printf(”%s\n”,p); } 四、程序设计题(每小题10分,共20分) 1、编写程序,从键盘输入一个字符序列(以字符'#'作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。 然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。 int main() { FILE *fio; char k; fio = fopen("test3.dat","w"); if(fio == NULL) exit(-1); while (1) { k=getch(); if (k=='#') {break;} putch(k); if (islower(k)) {fputc(k-32,fio)(k-32);} else{fputc(k,fio)(k);} } fclose(fio); return 0; } 2、编写一程序,从键盘输入10个实数,计算并输出算术平均值。 main() {inti; floatave=0.0,a[10]; for(i=0;i<10;i++) scanf("%f",&a[i]); for(i=0;i<10;i++) ave+=a[i]; printf("%10.4f\n",ave/10.0);. }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 模拟 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)