C语言程序设计练习题整理Word文档格式.docx
《C语言程序设计练习题整理Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题整理Word文档格式.docx(21页珍藏版)》请在冰点文库上搜索。
![C语言程序设计练习题整理Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/5ede254f-a7d5-434a-9f6d-99fa89da35cf/5ede254f-a7d5-434a-9f6d-99fa89da35cf1.gif)
1、C语言是一种“______”,既具有______的特点又具有______的特点;
既适合于开发______又适合于编写______。
2、在C语言中,输入操作是由库函数完成的,输出函数是由库函数______完成的。
3、C程序的基本单位是______。
4、每个源程序有且只有一个______函数,系统总是从该函数开始执行C语言程序。
5、C语言的程序中有特殊含义的英语单词称为______。
6、C语言中,标识符的定义规则是______。
7、C语言程序的注释可以出现在程序中的任何地方,它总是以______符号作为开始标记,以______符号作为结束标记。
三、程序设计题
1.编写一个C语言应用程序,其功能是显示以下图形。
#
##
###
####
#####
2.编写C语言程序,运行后输出以下信息。
**************************
欢迎进入C语言的天地!
3.编写一个程序,在屏幕上输出你的姓名。
第2章数据类型、运算符与表达式
1、下列数据中属于“字符串常量”的是()
A.ABCB.“ABC”C.‘abc’D.‘a’
2、在PC机中,’\n’在内存占用的字节数是()
A.1B.2C.3D.4
3、字符串”ABC”在内存占用的字节数是()
A.3B.4C.6D.8
4、在C语言中,合法的长整形常数是()
A.0LB.7654321C.0.07654321D.2.3456e10
5、char型常量在内存中存放的是()
A.ASCII值B.BCD码值
C.内码值D.十进制代码值
6、设m,n,a,b,c,d均为0,执行(m=n==b)||(n=c==d)后,m,n的值是()
A.0,0B.0,1C.1,0D.1,1
7、设a为5,执行下列语句后,b的值不为2的是()
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>
3?
2:
4
8、执行语句”x=(a=3,b=a--)后,x,a,b的值依次为()
A.3,3,2B.3,2,2C.3,2,3D.2,3,2
9、设整形变量m,n,a,b均为1,执行”(m=a>
b)&
&
(n=a>
=b)”后m,n的值是()
A.0,0B.0,1C.1,0D.1,1
10、设有inta=3;
则执行语句a+=a-=a*a;
后a的值是()
A.3B.0C.9D.-12
11、在以下一组运算符中,优先级最高的运算符是()
A.<
=B.=C.%D.&
12、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()
A.1B.2C.2.0D.2.5
13、设a=1,b=2,c=3,d=4,则表达式a<
b?
a:
c<
d?
d的结果是()
A.4B.3C.2D.1
14、下列表达式中符合C语言语法的赋值表达式是()
A.a=7+b+c=a+7B.a=7+b++=a+7
C.a=(7+b,b++,a+7)D.a=7+b,c=a+7
15、若有chara;
intb;
floatc;
doubled;
则表达式a*b+d-c值的类型是()
A.floatB.intC.charD.double
16、表达式10!
=9的值是()
A.trueB.非零值C.0D.1
1、在内存中存储”A”要占用个字节,存储’A’要占用个字节。
2、C语言中符号常量的定义方法是。
3、定义变量的完整格式为。
4、C语言中的逻辑值“真”是用表示的,逻辑值“假”是用表示的。
5、符号常量的定义方法是。
6、无符号基本整型的数据类型符为,双精度实型数据类型符为,字符型数据类型符为。
7、运算符:
+、++、&
、<
=中,优先级最高的是,最低的是。
8、设a=3,b=2,c=1,则a>
b的值为,a>
b>
c的值为。
9、若a=10,b=20,则表达式!
a<
b的值为。
10、若intx=1,y=2;
则表达式1.0+x/y的值为。
11、若int型变量x=y=z=5;
若执行x-=y–z后x=;
若执行x%=y+z后x=;
若执行x=(y>
z)?
x+2:
x–2,3,2后x=;
12、表述20<
x<
30或x<
-100的C语言表达式为。
13、设floatx=2.5,y=4.7;
inta=7;
,表达式x+a%3*(int)(x+y)%2/4的值为。
14、判断变量a、b的值均不为0的逻辑表达式为。
15、求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为。
16、求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为。
17、数学式a/(b*c)的C语言表达式。
1、编写一个程序,将大写字母转换为小写字母。
2、编写程序,从键盘输入梯形的上下底边长度和高,计算梯形的面积。
3、编写程序,从键盘输入某学生的四科成绩,求出总分和平均分,找出最高分和最低分。
4、编写摄氏温度、华氏温度转换程序。
要求:
从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。
转换公式:
F=(C+32)×
9/5
四、程序改错题
1、以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。
#include<
stdio.h>
main
{
inta,b,s,l;
scanf("
%d,%d"
&
a,&
b);
s=a*b;
l=a+b;
printf("
l=%f,s=%f\n"
l);
}
2、以下程序的功能是,输入两个数,求最大值。
mian()
{
inta,b;
c;
scanf("
%d%d"
a,&
c=max(a,b);
printf("
max=%d"
c);
}
intmax(intx,inty)
{return(x>
y?
x:
y)}
3、以下程序的功能是,输入三个数,求平均值。
include<
main()
inta,b;
floataverage;
pleaseinputa,b,c:
"
);
b,&
c);
prinf("
a=%d,b=%d,c=%d\n"
a,b,c);
average=(a+b+c)/3.0;
average=%.2d\n"
average);
第4章程序结构
1、若charc=’A’;
则c=(c>
=’A’&
c<
=’Z’)?
(c+32):
c的值是()
A.‘A’B.‘a’C.‘Z’D.‘z’
2、设x,y,z,t均为int型变量,则执行以下语句后,t的值为()
x=y=z=1;
t=++x||++y&
++z;
A.不定值B.2C.1D.0
3、执行以下语句后x的值是()
a=b=c=0;
x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A.34B.4C.35D.3
4、下面的程序段所表示的数学函数关系是()
y=-1;
if(x!
=0)if(x>
0)y=1;
elsey=0;
A.y=-1(x<
0);
0(x=0);
1(x>
0)
B.y=1(x<
-1(x=0);
0(x>
C.y=0(x<
D.y=-1(x<
1(x=0);
5、若有整型变量i,j;
则以下程序段中内循环体的执行次数为()
for(i=5;
i;
i++)
for(j=0;
j<
4;
j++){...}
A.20B.24C.25D.30
6、假定a和b为int型变量,则执行以下语句后b的值为()
a=1;
b=10;
do{b-=a;
a++;
while(b--<
0);
A.9B.-2C.-1D.8
7、在C语言中,下列说法中正确的是()
A.不能使用”do语句while(条件)”的循环
B.”do语句while(条件)”的循环必须使用”break”语句退出循环
C.”do语句while(条件)”的循环中,当条件为非0时结束循环
D.”do语句while(条件)”的循环中,当条件为0时结束循环
8、若abcd都是int类型变量且初值为0,以下选项中不正确的赋值语句是()。
A.a=b=c=100;
B.d++;
C.c+b;
D.d=(c=22)-(b++);
9、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是()。
A.a=a+b,b=a-b,a=a-b;
B.t=a,a=b,b=t;
C.a=t;
t=b;
b=a;
D.t=b;
a=t;
10、以下关于if语句的错误描述是( )。
A.条件表达式可以是任意的表达式
B.条件表达式只能是关系表达式或逻辑表达式
C.条件表达式的括号不可省
D.与else配对的if语句是其之前最近的未配对的if语句
11、执行了以下程序段后,x,w的值为()。
intx=0,y=1,z=2,w;
if(x++)w=x;
elseif(x++&
y>
=1)w=y;
z>
1)w=z;
A.0,1B.1,1C.2,1D.3,2
12、对于下面①,②两个循环语句,()是正确的描述。
①while
(1);
②for(;
;
);
A.①②都是无限循环B.①是无限循环,②错误
C.①循环一次,②错误D.①②皆错误
1、结构化程序设计规定的三种基本结构是结构,结构和结构。
2、以下两条if语句可合并成一条if语句为。
if(a<
=b)x=1;
elsey=2;
if(a>
b)printf(“****y=%d\n”,y);
elseprintf(“####x=%d\n”,x);
3、设i,j,k均为型变量,则执行如下语句后,k的值为。
for(i=0,j=10;
i<
=j;
i++,j--)k=i+j;
三、程序分析题
1、阅读程序,写出运行结果()
#include"
stdio.h"
main()
{
floata,b,area;
%f%f"
area=a*b;
area=%f\n"
area);
}
2↙3↙
2、阅读程序,写出运行结果()
charc1,c2,c3;
c1='
a'
;
c2='
b'
c1=c1-32;
c2=c2-32;
\n%c%c\n"
c1,c2);
3、阅读程序,写出运行结果()
intx,a;
x=(a=3,6*3);
%d,%d\n"
a,x);
x=a=3,6*a;
4、阅读程序,写出运行结果()
main()
inty=9;
for(;
y>
0;
y--)
if(y%3==0){printf(“%d”,--y);
cintinue;
5、阅读程序,写出运行结果()
#include<
inta=3,b=8,c=5,t;
if(a>
b){t=a;
a=b;
b=t;
c){t=a;
a=c;
c=t;
if(b>
c){t=b;
b=c;
6、阅读程序,写出运行结果()
#include<
{intc1=0,c2=0,score;
scanf("
%d"
score);
if(score>
=60)
{
及格"
c1=c1+1;
}
else
{
printf("
不及格"
c2=c2+1;
86↙
7、阅读程序,写出运行结果()
#include<
***\n"
***"
8、阅读程序,写出运行结果()
inti,s;
i=1;
s=0;
while(i<
=3)
s=s+i;
i=i+1;
s);
9、阅读程序,写出运行结果()
inti,j;
for(i=1;
i<
=3;
i++)
{printf("
*\n"
10、阅读程序,写出运行结果()
{inta=1;
while(a<
=2)
欢迎光临!
a=a+1;
11、阅读程序,写出运行结果()
{
inta[5],i,min,max;
for(i=0;
5;
i++)
a[i]);
min=max=a[0];
{if(a[i]<
min)min=a[i];
Mininumvalueis%d\n"
min);
6↙5↙9↙3↙7↙
12、阅读程序,写出运行结果()
inta[5]={1,2,3,4,5},i;
%4d"
a[i]);
13、阅读程序,写出运行结果()
math.h>
func(inta,intb);
intk=4,m=1,p;
p=func(k,m);
p);
func(inta,intb)
{intm;
m=a+b;
return(m);
四、程序设计题
1、编程序,输入一个整数,输出其符号(若≥0,输出1;
若≤0,输出-1)。
2、编程序,输入三个数,输出其中最小值。
第5章数组
1、若有以下说明,则数值为4的表达式是()
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc=‘a‘,d,g;
A.a[g–c]B.a[4]C.a[‘d’-‘c’]D.a[‘d’–c]
2、设有定义:
chars[12]={“string”};
则printf(“%d\n”,strlen(s));
的输出是()
A.6B.7C.11D.12
3、若有以下数组定义:
inta[10]={1,2,3,4,5,6,7,8,9,10};
则关于语句printf(“%d“,a[10]);
正确的说法是()。
A.正确执行并输出10B.能够执行但输出0
C.语法错误,不能执行D.虽然能够执行,但输出结果不确定
4、下列语句中,正确的是()
A.chara[3][]={‘abc’,‘1’};
B.chara[][3]={“abc”,“1”};
C.chara[3][]={‘a’,“1”};
D.chara[3][]={“a”,“1”};
5、合法的数组定义是()
A.inta[]={“string”};
B.inta[5]={0,1,2,3,4,5};
C.chara={“string”};
D.chara[]={0,1,2,3,4,5};
6、关于数组定义,以下说法不正确的是()。
A.定义数组时,可以只为其中的部分元素赋值;
B.多维数组在定义时只能省略第一维的长度;
C.多维数组在定义时不能省略的是第一维的长度;
D.局部数组在定义时也可以赋初值;
7、数组名作为参数传递给函数,作为实在参数的数组名被子处理为()。
A.该数组的长度B.该数组元素个数
C.该数组各元素的值D.该数组的首地址
1、若在程序中用到putchar()函数时,应在程序开头写上包含命令(),若在程序中用到strlen()函数时,应在程序开头写上包含命令()。
2、下面程序的功能是输出a数组中最大元素的下标,请填空。
intk,p;
inta[]={1,-9,7,2,-10,3};
for(p=0,k=p;
p<
6;
p++)
if(a[p]>
a[k])
printf(“%d\n”,k);
1、编程序,输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。
2、有一个数组,内放10个数,编程找出其中最小的数及其下标。
第6章函数
1、C语言中函数的隐含存储类型是()
A.autoB.staticC.externD.无存储类型
2、以下对C语言函数的有关描述中,正确的是()
A.调用函数时只能把实参的值传送给形参,形参值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
3、C语言中函数返回值的数据类型是由()决定。
A.主调函数的类型B.定义函数时指定的类型
C.return语句中表达式的类型D.声明函数时的类型
4、下列程序的输出结果是()
intm=13;
intfun(intx,iny)
{intm=3;
return(x*y-m);
{inta=7,b=5;
printf(“%d”,fun(a,b)/m);
A.1B.2C.7D.10
5、以下程序的输出结果是()
intd=1;
voidfun(intn)
{longs;
intd=5;
d+=n++;
printf(“%d\t”,d);
{inta=3;
fun(a);
d+=a++;
printf(“%d”,d);
A.84B.96C.94D.85
6、C语言中