C语言题目答疑带参考答案Word格式文档下载.docx
- 文档编号:19325127
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:32
- 大小:366.13KB
C语言题目答疑带参考答案Word格式文档下载.docx
《C语言题目答疑带参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言题目答疑带参考答案Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
正确的有:
A,B,C
【补充】
(1)
inta,b,c;
scanf("
%d%d%d"
&
a,&
b,&
c);
"
是按十进值格式输入三个数值。
输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。
以下是合法输入方式:
①3□□4□□□□5↙
②3↙
4□5↙
③3(tab键)4↙
5↙
(2)
%d,%d,%d"
运行时按如下方式输入三个值:
3,4,5↙(输入a,b,c的值)
或者
3,□4,□5↙(输入a,b,c的值)
3,□□□4,□5↙(输入a,b,c的值)
......
都是合法的,但是"
"
一定要跟在数字后面,如:
3□,4,□5↙就非法了,程序出错。
5、以下4个选项中,可以看作是一条语句的有()
A、{;
}
B、if(b==0)n=1;
n=2;
C、a=0,b=0,c=0;
D、if(a>
0);
A、C、D
表达式1,表达式2,……,表达式n
逗号表达式的值:
等于表达式n的值
自左向右依次进行运算
优先级最低(注:
与赋值号混合运算时,没括号的情况下先赋值,再逗号)
6、以下不合法的赋值语句是()
A、c=int(a+b);
B、x+y;
C、x=y=100;
D、d--;
B
7、以下程序段的输出结果是()、()、()、()、()。
intx=0177;
printf(“x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
x=127,x=127,x=177,x=7F,x=127
8、下列程序的输出结果是()。
main()
{
inta=7,b=5;
printf(“%d\n”,b=b/a);
A、不确定
B、1
C、5
D、0
D
9、若从终端输入以下数据,要给变量c赋以283.19,则正确的是()
A、scanf(“%8.4f”,&
B、scanf(“%6.2f”,&
C、scanf(“%f”,c);
D、scanf(“%8f”,&
(1)scanf函数中没有精度控制,如:
scanf(“%5.2f”,&
a);
是非法的。
不能企图用此语句输入小数为2位的实数。
(2)scanf中要求给出变量的地址。
(3)在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据间的间隔则可用空格、TAB或回车作间隔。
C编译在碰到空格、TAB、回车或非法数据(如对”%d”输入12A,A即为非法数据)时即认为该数据结束。
(4)在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入字符均为有效字符。
10、以下程序的输出结果是()
inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);
A、a=%2,b=%5printf(“a=%%%d,b=%%%d\n”,a,b);
B、a=%%d,b=%%dprintf(“a=%%%%d,b=%%%%d\n”,a,b);
C、a=%d,b=%d
D、a=2,b=5printf(“a=%d,b=%d\n”,a,b);
C
11、下列程序的输出结果是()
intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:
a++;
break;
case1:
b++;
}
case2:
case3:
}
printf(“a=%d,b=%d\n”,a,b);
a=2,b=1
12、(判断题)若有定义和语句:
inta;
charc;
floatf;
scanf(“%d,%c,%f”,&
a,&
c,&
f);
若通过键盘输入:
10,A,12.5,则a=10,c=’A’,f=12.5
对
13、以下程序的功能是计算
请填空。
longf(intn)
inti;
longs;
s=1;
for(i=1;
i<
=n;
i++)s=s*i;
returns;
intk,n;
scanf(“%d”,&
n);
s=0;
for(k=0;
k<
=n;
k++)
s=s+f(k);
printf(“%d\n”,s);
14、以下程序的输出结果是()
inta=3,b=2,c=1;
c-=++b;
b*=a+c;
intb=5,c=12;
c/=b*2;
a-=c;
printf(“%d,%d,%d,”,a,b,c);
a+=--c;
printf(“%d,%d,%d\n”,a,b,c);
15、以下程序的输出结果是()
fun1(inta,intb)
intc;
a+=a;
b+=b;
c=fun2(a,b);
returnc*c;
fun2(inta,intb)
c=a*b%3;
returnc;
intx=11,y=19;
printf(“%d\n”,fun1(x,y));
16、以下程序的输出结果是()
doublesub(doublex,doubley,doublez)
y-=1.0;
z=z+x;
returnz;
doublea=2.5,b=9.0;
printf(“%f\n”,sub(b–a,a,b));
17、下面pi函数的功能是,根据以下公式返回满足精度eps要求的?
的值。
doublepi(doubleeps)
doubles=0.0,t=1.0;
intn;
for(n=1;
t>
eps;
n++)
s+=t;
t=n*t/(2*n+1);
return(2.0*s);
18、【程序设计】
功能:
计算出k以内最大的10个能被13或17整除的自然数之和。
(k<
3000)。
#include<
stdio.h>
#include“conio.h”
intfun(intk)
/*************Begin***********/
intcount=0,sum=0;
while(count<
=10)
k--;
if(0==k%13||0==k%17)
{
sum+=k;
count++;
}
/*************End************/
intm;
printf(“Enterm:
”);
m);
printf(“\nTheresultis%d\n”,fun(m));
19、【程序改错】
根据以下公式求?
值,并作为函数值返回。
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。
doublefun(doubleeps)
doubles,t;
intn=1;
s=0.0;
t=1;
/***********ERROR**********/
while(t<
=eps)while(t>
eps)
s+=t;
/***********ERROR**********/
t=n/(2*n+1)*t;
t=n*t/(2*n+1);
或者t=t*n/(2*n+1);
n++;
return(2.0*s);
doublex;
scanf(“%lf”,&
x);
printf(“\neps=%lf,Pi=%lf\n\n”,x,fun(x));
20、若有以下程序段,其输出结果是
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
A、0,0,-10
B、0,0,5
C、-10,3,-10
D、3,3,-10
21、【程序改错】
输出Fabonacci数列的前20项,要求变量
输出时只输出整数部分,输出项数不得
fun()
floatf1=1,f2=1,f3;
printf(“%8d”,f1);
printf(“%8.0f”,f1);
printf(“%8.0f”,f2);
for(i=1;
i<
=20;
i++)for(i=3;
i++)
f3=f1+f2;
f2=f1;
f1=f2;
f3=f2;
f2=f3;
printf(“%8.0f”,f1);
printf(“\n”);
fun();
22、【程序填空】
输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。
intm,n,k,i=0;
for(m=100;
m<
=1000;
m++)
/***********FILE**********/
k=0;
n=m;
do
/***********FILE**********/
k=k+n%10;
n=n/10;
while(n>
0);
if(k%15==0)
printf(“%5d”,m);
i++;
if(i%10==0)
printf(“\n”);
23、阅读下面程序,程序执行后的输出结果是()
chara,b;
for(a=‘0’,b=’9’;
a<
b;
a++,b--)
printf(“%c%c”,a,b);
24、程序填空
下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0。
inti,x,y=1;
for(i=2;
=sqrt(x);
i++)(或i<
=x–1)
if(0==x%i){y=0;
printf(“%d\n”,y);
25、下列程序的输出结果是()
inti=7;
printf(“%d,”,--j);
printf(“%d\n”,j--);
printf(“%d”,j);
6,6
5
26、下列程序的输出结果是()
if(i-->
6)
printf(“%d,”,i++);
printf(“%d”,i);
6,7
27、以下程序的输出结果是()
floatx=2.01358;
printf(“%5.3f\n”,x);
printf(“%f”,(int)(x*1000)/(float)1000);
2.014
2.013000
28、下列的while循环()
inti=0,k=5;
while(k=1)
i+=1;
k--;
A.循环体执行四次
B.循环体一次都不执行
C.循环体执行无限次(即无限循环)
D.循环结束条件不合法
29、以下程序的输出结果是()
inti=1,count=0;
while(i<
5)count+=1;
printf(“%d”,count);
报错(while循环将执行无限次,永远不可能执行到printf语句)
30、请问答以下字符数组的长度是多少。
chara[]={‘s’,‘t’,‘u’,‘d’,‘e’,‘n’,‘t’}
charb[]={‘s’,‘t’,‘u’,‘d’,‘e’,‘n’,‘t’,‘\0’}
charc[]=“student”;
chard[15]=“student”;
chare[20]={‘s’,‘t’,‘u’,‘d’,‘e’,‘n’,‘t’,‘\0’}
字符数组a的长度是7,字符数组b的长度是8,字符数组c的长度是8,字符数组d的长度是15,字符数组e的长度是20。
31、若有以下说明和输入语句,要求c1和c2输入字符E和F,给a、b输入40和123,从键盘正确的输入数据的形式是()
inta;
floatb;
charc1,c2;
scanf(“%d%d”,&
b);
scanf(“%c%c”,&
c1,&
40123EF
32、【程序填空】
找出二维整型数组data[5][3]中的最大值。
intfindmax(inta[5][3])
inti,j,max;
max=a[0][0];
for(i=0;
5;
i++)
for(j=0;
j<
3;
j++)
if(max<
a[i][j])
max=a[i][j];
returnmax;
intdata[5][3]={{23,12,5},{34,26,23},{19,20,44},{10,21,8,26},{18,30,22,16}};
printf(“max=%d\n”,findmax(data));
33、以下程序的输出结果是()
intj;
intdata[4][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for(j=0;
4;
printf(“%d”,data[j][4-j]);
591317
34、以下程序的输出结果是()
inti,j;
inta[][3]={1,3,5,7,9,11,13,15,18};
int*p=a[0];
a[i][j]=*p++;
printf(“%d\n”,a[1][2]);
11
35、以下程序的输出结果是()
intfun(inta[][5])
inti,j,s=0;
i=j;
if(i>
3)
i=4-j;
s=s+a[i][j];
intdata[5][5]={{1,2,3,4,5},{0,2,4,6,8},{3,6,9,12,15},{4,3,2,1,0},{5,7,9,11,13}};
printf(“%d\n”,fun(data));
18
36、如果一次输入字符CCD,在以下while语句执行后ch的值是()
while(ch=getchar()==‘C’);
37、以下不符合C语言语法的赋值语句是()
A.i++;
B.a=a=8;
C.x=int(j);
D.y=3+5,y*2;
应改为x=(int)j;
38、【程序设计】
求1到1000之间奇数的乘积。
doublefun(intn)
/***********Begin**********/
inti,odd;
doubles=1;
odd=2*i+1;
while(odd<
=n)
s*=odd;
i++;
odd=2*i+1;
/***********End**********/
voidTestFunc()
FILE*IN,*OUT;
intiIN,i;
doubledOUT;
IN=fopen(“23.in”,“r”);
if(IN==NULL)
printf(“PleaseVerifyTheCurrentDir..ItMayBeChanged.\n”);
OUT=fopen(“23.out”,“w”);
if(OUT==NULL)
10;
fscanf(IN,“%d”,&
iIN);
dOUT=fun(iIN);
fprintf(OUT,“%f\n”,dOUT);
fclose(IN);
fclose(OUT);
intm=1000;
printf(“%f\n”,fun(m));
TestFunc();
39、以下程序的输出结果是()
#defineMAX(x,y)(x)>
(y)
(x):
(y)
inti=28,j=36,k;
k=20*MAX(i,j);
printf(“%d\n”,k);
28
40、设x和y均是float类型的变量,且x=9.92,y=7.88,则表达式(int)x+y/y的值是()
10.000000
41、已知ch为字符型变量,则以下赋值语句中错误的是()
A.ch=‘\x4b’;
ch的值是ASCII码为75的字符,即字母’K’
B.ch=‘\’;
C.ch=‘\\’;
ch的值是’\’
D.c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题目 答疑 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)