c复习题.docx
- 文档编号:11058457
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:15
- 大小:29.73KB
c复习题.docx
《c复习题.docx》由会员分享,可在线阅读,更多相关《c复习题.docx(15页珍藏版)》请在冰豆网上搜索。
c复习题
一、单项选择题
1.一个C语言程序是由【C】组成。
A)主程序B)子程序C)函数D)过程
2.C语言程序应至少包含一个【C】。
A)语句B)函数调用C)主函数D)子函数
3.C语言中的简单数据类型包括【B】。
A)整型、实型、逻辑型
B)整型、实型、字符型
C)整型、字符型、逻辑型
D)实型、逻辑型、字符型
4.若有以下定义intb;floatc;doubled;
则表达式b+c/d的结果为【D】型。
A)intB)floatC)charD)double
5.假设定义变量如下:
floatx;
inty;
那么以下输入语句中【C】是正确的。
A)scanf("%f%f",&x,&y);
B)scanf("%f%d",x,y);
C)scanf("%f%d",&x,&y);
D)scanf("%d%d",&x,&y);
6.设x、y均为int型变量,且x=10,y=3,则以下语句的输出结果是【D】。
printf("%d,%d\n",x--,--y);
A)10,3B)9,3C)9,2D)10,2
7.设a=1,b=2,则表达式a
A)-1B)0C)1D)2
8.以下程序的输出结果是【A】。
main()
{intx=5,y=2;
printf(”%d\n”,x/y);
}
A)2B)2.5C)3D)0
9.若x=8,y=5,则条件表达式x>y?
x:
y的值是【C】。
A)5B)13C)8D)0
10.下列表达式中能正确表示x>=0而且x<=1的表达式是【B】。
A)x>=0||x<=1B)x>=0&&x<=1C)0<=x<=1D)x>=0&x<=1
11.下述程序的输出结果是【A】。
intx=1,y,z;
y=++x;
z=x++;
printf("%d,%d,%d",x,y,z);
A)3,2,2
B)3,2,3
C)2,2,2
D)2,2,1
12.设a=1,b=2,则表达式a
=a的值为【C】。
A)-1B)0C)1D)2
13.若已定义:
inti=3;执行语句if(++i<5)printf(“%d\n”,i);后,i的值为【B】。
A)3B)4C)5D)6
14.C语言的运算符按运算对象的数目可以分为【C】。
A)单目运算符一种B)单目和双目运算符
C)单目、双目和三目运算符D)单目、双目、三目和四目运算符
15.若定义了inti,则控制语句for(i=1;i<4;i++)控制循环体执行【A】次。
A)3B)4C)1D)2
16.若有说明:
inta[10];则对a数组元素的正确引用是【D】。
A)a[10]B)a[3.5]C)a(5)D)a[0]
17.要说明一个有10个int元素的数组,应当选择语句【A】。
A)inta[10];B)inta[2.5];C)inta[];D)int*a[10];
18.以下所列的各函数首部中,正确的是【C】。
A)voidplay(vara:
integer,varb:
integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)voidplay(aasinteger,basinteger)
19.若用数组名作为函数调用时的实参,则传递给形参的是【A】。
A)数组的首地址B)数组的第一个元素值
C)数组中全部元素的值D)数组元素的个数
20.一个C程序总是从【C】开始执行。
A)主过程
B)第一个函数
C)主函数
D)子函数
21.已知函数abc的定义为:
voidabc()
{……}
则函数中void的含义是【A】。
A)执行函数abc后,函数没有返回值
B)执行函数abc后,函数不再返回
C)执行函数abc后,函数可以返回任意类型
D)以上答案全不对
22.C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是【B】。
A)地址传递
B)值传递
C)由实参传给形参,再由形参传给实参
D)由用户指定传递方式
23.a为int型变量,则【D】是对指针变量p的正确定义。
A)int*p=a;
B)intp=a;
C)intp=&a;
D)int*p=&a;
二、读程序题
1.
#include
voidmain()
{inta,b;
a=0;b=1;
a=a+b;
b=a+b;
printf("%d,%d\n",a,b);
}
结果:
1,2
2.
#include
voidmain()
{intx=1,y=1;
if(y>0)x=6;
printf("%d\n",x);
}
结果:
6
3.
#include
voidmain()
{intnum=1;
while(num<=4)
{printf("%d",num);
num++;}
}
结果:
1234
4.
#include
voidmain()
{intx,y,f,i;
x=0;y=1;
for(i=1;i<=2;i++)
{f=x+y;
x=y;
y=f;
printf("%d",f);}
}
结果:
12
5.
#include
voidmain()
{inti,j,k;
k=0;
for(i=1;i<=3;i++)
for(j=1;j<=5;j++)
k++;
printf("k=%d\n",k);
}
结果:
k=15
6.
#include
voidmain()
{intx[5]={5,7,4,6,11};
inti,s=0;
for(i=0;i<5;i++)
if(x[i]%2==0)
s=s+x[i];
printf("s=%d\n",s);
}
结果:
s=10
7.
#include
voidmain()
{intx[3][3]={1,2,3,4,5,6,7,8,9},s;
s=x[0][0]+x[1][1];
printf("%d",s);
}
结果:
6
8.
#include
voidmain()
{intfac(intn);
inty;
y=fac(5);
printf("y=%d\n",y);
}
intfac(intn)
{inti,b=1;
for(i=1;i<=n;i++)
b=b*i;
return(b);
}
结果:
y=120
9.
#include
voidmain()
{intfac(intn);
inty;
y=fac(5);
printf("y=%d\n",y);
}
intfac(intn)
{inti,b=0;
for(i=1;i<=n;i++)
b=b+i;
return(b);
}
结果:
y=15
10.
#include
voidmain()
{inta=3,*p;
p=&a;
*p=7;
printf("%d\n",a);
}
结果:
7
三、程序填空
1.从键盘输入一个正整数x,求1到x的累加和.程序如下,请将程序补充完整。
#include
voidmain()
{inti=1,sum=;//0
intx;
printf("pleaseinputanint:
\n");
;//scanf("%d",&x);
while//(i<=x)
{sum=//sum+i;
;//i++
}
printf("sum=%d\n",sum);
2.下列程序是大奖赛的评分程序,记分规则为:
由10名评委打分,去掉其中的一个最高分和最低分,总分即为选手的得分。
请将程序补充完整。
#include
voidmain()
{inta[10],i,sum=0,min,max;
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
sum+=a[i];
}
max=a[0];
min=a[0];
for(i=1;i<10;i++)
{if(a[i]>max)
max=
(1);//a[i]
if(a[i] min= (2);//a[i] } sum=(3);//sum-max-min printf("sum=%d,max=%d,min=%d\n",sum,max,min); } 3.用“起泡法”对5个整数从小到大排序。 请填空。 #include voidmain() {inta[5]={10,5,6,7,2},i,j,t; for(i=1;i<=4;i++) for(j=0;j<= (1);j++)//4-i if(a[j]> (2))//a[j+1] {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<5;i++)printf("%4d",a[(3)]);//i printf("\n");} 四、编程题 1.输入三角形的三边长,计算三角形的面积。 三角形的面积公式为 其中 【源程序】 #include #include voidmain() {floata,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%f\n",area); } 2、输入一个华氏温度f,输出摄氏温度c。 计算公式为c=5/9(f-32)结果保留两位小数。 例如: 输入41,输出结果为5.00。 【源程序】 #include voidmain() {floata,b; scanf("%f",&a); b=5.0/9*(a-32); printf("%6.2f\n",b); } 3、根据分段函数y= 编写一个程序,从键盘输入x值,输出相应的y值。 【源程序】 #include voidmain() {floatx,y; printf("请输入x: "); scanf("%f",&x); if(x<10) y=2*x-1; elseif(x>10) y=2*x+11; else y=x; printf("y=%f\n",y); } 4、计算1到100之间偶数的和。 提示: 结果应为2550 【源程序】 #include voidmain() {inti,s; for(i=2,s=0;i<=100;i+=2) s=s+i; printf("%d\n",s); } 5.输入n值(n为整数),求以下S的值。 测试数据: n=20,s=0.772906 【源程序】 #include #include voidmain() {inti,n; floatk,s; printf("pleaseinputn: "); scanf("%d",&n); s=0; for(i=1;i<=n;i++) {k=pow(-1,i+1)*(1.0)/(2*i-1); s=s+k;} printf("%f\n",s); } 6.编写程序计算 的值 【源程序】 #include voidmain() {inti floatsum=0; for(i=1;i<=50;i++) sum+=1.0/i; printf("sum=%f\n",sum); } 7.从键盘输入10个整数,存放在数组a中,求它们中的最大数max和最小数min,并求它们去掉最大数和最小数后的平均值。 提示输出三行: max= min= aver= 【源程序】 #include voidmain() { inta[10]; inti,max,min; floataver,sum=0; printf("pleaseinput10numbers: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); min=a[0]; max=a[0]; for(i=0;i<10;i++) { sum=sum+a[i]; if(a[i] min=a[i]; if(a[i]>max) max=a[i]; } aver=(sum-max-min)/8; printf("max=%d,min=%d,ave=%f\n",max,min,ave); } 8.从键盘输入10个整数,存放在一维数组a中,将它们从大到小排序。 【源程序】 #include voidmain() {inta[10];inti,j,t; printf("input10numbers: \n"); for(i=0;i<10;i++)scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习题