c语言模拟试题1 141Word格式文档下载.docx
《c语言模拟试题1 141Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言模拟试题1 141Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
D、****&
7以下程序的执行结果是__A_____.
main()
{intnum=0;
while(num<
=2){num++;
printf("
%d,"
num);
}}
A、1,2,3,
B、1,2,3,4,
C、1,2,
D、0,1,2
8C语言中while和do-while循环的主要区别是(B)。
A、while的循环控制条件比do-while的循环控制条件更严格
B、do-while的循环体至少无条件执行一次
C、do-while的循环体不能是复合语句
D、do-while允许从外部转到循环体内
9有以下程序A
main()
{inti;
for(i=0;
i<
3;
i++)
switch(i)
{case1:
printf("
%d"
i);
case2:
default:
执行后输出结果是
A、011122
B、120
C、012020
D、012
10当运行以下程序时输入三行,每行都是在第一列上开始,<
CR>
代表Entre键。
D
a<
b<
cdef<
则程序的输出结果是
#include<
stdio.h>
#defineN6
{charc[N];
inti=0;
for(i=0;
i<
N;
c[i]=getchar();
putchar(c[i]);
A、abcdef
B、
C、
D、
11若有说明intc;
则while(c=getchar());
是正确的C语句。
T
12while和do…while循环不论什么条件下它们的结果都是相同的.F
13循环结构中的continue语句是使整个循环终止执行F
14inta[3][4]={{1},{5},{9}};
它的作用是将数组各行第一列
的元素赋初值,其余元素值为0。
15设有数组定义:
chararray[]="
hello"
;
则数组array所占的空间为5.F
16若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;
i<
i++)sum+=a[i][2-i];
则sum=21.T
17C语言的函数可以嵌套定义.F
18函数调用语句:
func(rec1,rec2+rec3,(rec4,rec5));
中,含有的实参个数是5.F
19进行宏定义时,宏名必须使用大写字母表示。
F
20若有宏定义:
#defineS(a,b)t=a;
a=b;
b=t由于变量t没定义,
所以此宏定义是错误的。
21若有以下定义,请写出以下程序段中输出语句执行后的结果。
(1)_____
(2)_____(3)_____
inti=-200,j=2500;
printf(“
(1)%d%d”,i,j);
printf(“
(2)i=%d,j=%d\n”,i,j);
printf(“(3)i=%d\nj=%d\n”,i,j);
(1)-2002500
(2)i=-200,j=2500(3)i=-200j=2500
22若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是_____。
charc1,c2;
floata1,a2;
scanf(“%f%f”,&
a1,&
a2);
scanf(“%c%c”,&
c1,&
c2);
7.29101.298AB<
23在C语言程序中,用关键字_____定义基本整型变量,用关键字_____定义单精度实型变量,用关键字_____定义双精度实型变量。
(1)int
(2)float(3)double
24通常一个字节包含_____个二进制位。
在一个字节中能存放的最大十进制整数是_____,
它的二进制数的形式是_____;
最小十进制整数是_____,它的二进制形式是_____。
(1)8
(2)255(3)11111111(4)-128(5)10000000
25以下程序的执行结果是___9__。
{
intk=8;
switch(k)
{
case9:
k+=1;
case10:
case11:
break;
default:
printf("
%d\n"
k);
26以下程序的输出结果是__-1___。
{intx=100,a=10,b=20,ok1=5,ok2=0;
if(a<
b)if(b!
=15)if(!
ok1)x=1;
elseif(ok2)x=10;
elsex=-1;
x);
27以下程序段的输出结果是__11___。
inti=0,sum=1;
do
{sum+=i++;
}while(i<
5);
printf(“%d\n”,sum);
28执行以下程序后的输出结果是_i=5,j=4,k=6____。
{
inta,b,c,d,i,j,k;
a=10;
b=c=d=5;
i=j=k=0;
for(;
a>
b;
++b)
i++;
while(a>
++c)
j++;
k++;
while(a>
d++);
printf(“i=%d,j=%d,k=%d\n”,i,j,k);
29以下findmax返回s中最大元素的下标,数组中元素的个数由t传入。
请填空。
fndmax(ints[],intt)
{intk,p;
for(p=0,k=p;
p<
t;
p++)
if(s[p]>
s[k])
__k=p___;
return_k____;
30以下程序统计从终端输入的字母中每个大写字母的个数,num[0]中统计字母A的个数,
其它依次类推。
用#号结束输入,请填空。
#include“stdio.h”
#include“ctype.h”
{intnum[26]={0};
i;
charc;
while(__(c=getchar())___!
=‘#’)
if(isupper(c))
num[__c–'
A'
__]+=1;
26;
if(num[i])
printf(“%c:
%d\n”,i+‘A’,num[i]);
31---------------------------------------------------------------------
请在打开的WORD的文档中,进行下列操作。
完成操作后,请保存文档,
并关闭WORD。
---------------------------------------------------------------------
1、设置标题文字"
打印管理器"
字体为"
黑体"
,字形为"
加粗、倾斜"
,字
号为"
小三"
,颜色为"
蓝色"
,对齐方式为"
居中"
,设置正文所有段
落字号为"
小四"
。
2、在页眉中插入页码格式为"
1,2……"
3、正文第1段"
打印管理器……"
设置首字下沉,行数为"
2行"
4、正文第3段"
打印队列有两种……出现在屏幕的底部。
"
设置边框为"
方框"
,
线型为"
实线"
,宽度为"
6磅"
,底纹填充色为"
绿色"
5、第2段"
使用Windows……并显示文件的状态。
设置分栏,栏数为"
2栏"
栏间添加"
分隔线"
6、在任意地方插入任意一幅剪贴画,环绕方式为"
紧密型"
7、在表格的第3行的后面添加一行。
【字体】黑体【加粗】True【斜体】True
【字号】小三或15【颜色】蓝色【字号】小四或12
【字号】小四或12【字号】小四或12
【页眉内容】_PAGE_
【下沉(悬挂)文字】打【首字下沉(悬挂)行数】2
【边框线型】1【边框线宽】6.00磅【底纹填充颜色(背景)】绿色
【分栏数】2【分栏线】True【环绕方式】紧密型
【表格行数】 12【单元格总数】60
32/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求一批数中最大值和最小值的积。
------------------------------------------------*/
#defineN30
#include"
stdlib.h"
#include<
voidbky();
intmax_min(inta[],intn)
/**********Begin**********/
/**********End**********/
inta[N],i,k;
N;
i++)
a[i]=random(51)+10;
%5d"
a[i]);
if((i+1)%5==0)printf("
k=max_min(a,N);
theresultis:
%d\n"
bky();
voidbky()
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("
in.dat"
"
r"
if(IN==NULL)
ReadFILEError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFILEError"
for(n=0;
n<
10;
n++)
{
fscanf(IN,"
&
i[n]);
o=max_min(i,10);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
inti,max,min;
max=min=a[0];
for(i=1;
n;
if(a[i]>
max)max=a[i];
elseif(a[i]<
min)min=a[i];
return(max*min);
33/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
求如下表达式:
111
S=1+--+---+......+-------
1+21+2+31+2+3+......+n
------------------------------------------------------*/
doublefun();
Pleaseinputanumber:
/**********ERROR**********/
print("
n);
%10.6f\n"
fun(n));
/**********ERROR**********/
fun(intn)
inti,j,t;
doubles;
s=0;
while(i=1;
=n;
i++);
t=0;
for(j=1;
j<
=i;
j++)
t=t+j;
/**********ERROR**********/
=s+1/t;
}
returns;
【参考答案】
scanf("
n);
doublefun(intn)
for(i=1;
n>
n+1;
n+1>
i;
s+=1.0/t;
s=s+1.0/(float)t;
s=1.0/(float)t+s;
s=s+1.0/t;
s=1.0/t+s;
s+=1.0/(float)t;
s+=1.0/(double)t;
s=s+1.0/(double)t;
s=1.0/(double)t+s;
34/*------------------------------------------------------
判断m是否为素数,若是返回1,否则返回0。
voidfun(intn)
inti,k=1;
if(m<
=1)k=0;
m;
if(m%i=0)k=0;
returnm;
voidmain()
intm,k=0;
for(m=1;
m<
100;
m++)
if(fun(m)==1)
%4d"
m);
if(k%5==0)printf("
intfun(intm)
fun(intm)
for(i=2;
m>
=m-1;
m-1>
if(m%i==0)k=0;
if(0==m%i)k=0;
returnk;
35/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
下面的程序是求1!
+3!
+5!
+……+n!
的和。
-------------------------------------------------------*/
longintf,s;
inti,j,n;
/**********FILL**********/
_____
scanf("
_____)
f=1;
_____;
s=s+f;
n=%d,s=%ld\n"
n,s);
s=0
i+=2
i=i+2
i=2+i
i++,i++
=i
i>
=j
i+1
i+1>
j
1+i
1+i>
f=f*j
f=j*f
36/*-------------------------------------------------------
打印以下图形。
*****
*****
main()
chara[5][9]={"
"
};
inti,j;
for(i=0;
5;
for(j=i;
a[i][j]='
*'
for(_____;
for(j=0;
9;
%c"
_____);
i+5
5+i
i+5>
5+i>
=i+4
=4+i
i+4>
4+i>
i=0
a[i][j]
)