C语言总结题目.docx
- 文档编号:25413855
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:55
- 大小:77.56KB
C语言总结题目.docx
《C语言总结题目.docx》由会员分享,可在线阅读,更多相关《C语言总结题目.docx(55页珍藏版)》请在冰豆网上搜索。
C语言总结题目
第2周:
(6)
1、分别在Win-TC和VC++6.0中运行以下程序,观察输出结果是否相同?
并简要说明原因。
#include
void main()
{
printf("int型占%d个字节;\n",sizeof(int));
printf("float型占%d个字节;\n",sizeof(float));
printf("double型占%d个字节;\n",sizeof(double));
}
2、有两个变量a和b,它们的值分别由键盘输入。
编程计算并输出a与b的和、差、积、商、a除以b的余数、ab的值。
(要求输入、输出有明确的示意)
3、由键盘输入一个圆柱体的底面半径r和高度h的值,编程计算并输出该圆柱体的体积。
(注意:
体积=底面积*高,要求将圆周率定义为符号常量PI)
4、编写一个程序,要求从键盘输入一个3位整数,然后将它们逆序输出。
(比如:
输入123,输出321。
提示:
关键是想办法分别提取百位、十位和个位上的数字!
!
)
5、修改以下程序中的错误(保存为error2_1.c),并将调试的信息填入下表中。
1 #include
2 Main()
3 {
4 intx=1;y;
5
6 y=x++;
7 printf("y=%d ",y)
8 intz;
9
10 z=++x;
11 print("z=%d\n,z);
12 }
程序中存在的错误及其相关信息一览表
行号
错误类型
错误提示信息
错误的原因及修改方案
6、编程计算下面数学表达式的值(课外完成!
)
(1)
(2)25×(3)ln(103.5+2)
(4)y+z%5*(int)(x+y)/2%4(其中x=2.7,y=4.5,z=8)
7、在Win-TC中输入并运行下面程序,对照程序分析运行结果:
(课外完成!
)
(1) 将一个大于32767的长整型数赋给整型变量,会得到什么结果。
(2) 将一个负整数赋给一个无符号的变量,会得到什么结果。
(3) 将一个字符型变量赋给一个整型变量,会得到什么结果。
程序如下:
#include
main()
{
inta,b;
longd,e;
unsignedf,g;
charc;
a=100;
b=-100;
c='a';
d=50000;
e=32767;
printf("%d,%d\n",a,b);
printf("%ld,%ld\n",d,e);
printf("%c,%d\n",c,c);
f=a;
g=b;
printf("%u,%u\n",f,g);
a=c;
printf("%d,%d\n",a,c);
a=d;
b=e;
printf("%d,%d\n",a,b);
}
8、分析教材P35第23~26题所给出的程序段运行结果,并上机验证之(课外完成!
)
第3周:
(1、2)
1、编程实现:
从键盘输入三角形的三边长a,b,c的值,计算并输出三角形的面积area,输入输出参考示例如下:
请输入三个边长a,b,c的值:
a=3.4,b=4.5,c=5.6
面积area=7.649173
2、编程求一元二次方程ax2+bx+c=0的实数根x1,x2,a,b,c的值由键盘输入,设b2-4ac>0。
输入输出参考示例如下:
请输入三个系数a,b,c的值:
a=1,b=3,c=2
x1=-1.00
x2=-2.00
3、编程实现;从键盘输入一个大写字母,输出该字母及其对应的ASCII码值,同时输出其小写字母及其对应的ASCII码的值;
4、编辑并运行下面程序:
#include
main()
{inta,b,c;
a=getchar();
b=getchar();
c=getchar();
printf("a=%db=%dc=%d\n",a,b,c);
printf("a=%cb=%cc=%c\n",a,b,c);
}
运行程序后如果输入:
1【Enter】
ab【Enter】
则本程序的输出结果为,试用其他输入数据验证你的分析结果。
5、以下C程序的功能是:
从键盘依次输入4个整数,计算并输出这4个数的平均值。
#include
main()
{inta,b,c,d,av;
printf("Inputa,b,c,d:
");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
av=(a+b+c+d)/4;
printf("av=%f\n",av);
}
【思考验证】:
观察以上运行结果,想一想为什么?
将最后一句中的“%f”改为“%d”,观察结果有什么变化?
如果想使计算结果为实数,如何修改程序?
如果想计算4个实数的平均数,如何修改程序?
第4周:
(选择题、鸡兔、加密(转盘))
一、单选题(每题4分,共40分)
1、设inta=5;表达式a+=a-=a*=a的值是( C)
A.10 B.25 C.0 D.50
2、设inta=12;表达式a*=2+3的值是( D )
A.0 B.12 C.27 D.60
3、若x,y均定义为float型变量,则以下不合法的赋值语句是(B )
A.++x; B.y=(x%4); C.x*=y+5; D.x=y=0;
4、设有定义:
intx;chary;执行以下语句:
scanf(“%3d%3c“,&x,&y);
printf(“%d,%c“,x,y);
若从键盘上输入12345,abc,则输出结果是(C )
A.123,abc B.123,4 C.123,a D.12345,abc
5、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(B )
A.1.0 B.2.0 C. 2 D. 2.5
6、已知inti,a;执行语句i=(a=2*3,a*5),a+6;后,变量a,i的值分别是( A )
A.6,30 B.30,30 C.36,6 D.30,36
7、已知字符‘b’的ASCII码值为98,执行语句printf("%d,%c",’b’,’b’+1);的输出为( C )
A.98,b B.98,99 C.98,c D.类型不匹配
8、下面( C )是合法的变量名
A.line# B.3pai C.str_1 D.int
9、有定义intj,i=1;,执行语句j=-i++;后,j的值是( D )
A.1 B.2 C.-2 D.-1
10、 以下叙述中正确的是(B )
A.C程序中的main()函数必须位于程序的最前面
B.C语言本身没有提供输入输出语句
C.C程序中每行只能写一条语句
D.编译C源程序时可以发现注释中的拼写错误
二、编程(每题20分,共60分)
1、鸡兔同笼问题。
已知鸡兔总头数为h,总脚数为f,编程求笼中鸡、兔各有多少只。
(要求:
h和f的值由键盘输入,h为30,f为90)
输入输出示例:
输入鸡兔的总头数h和总脚数f:
h=30,f=90
鸡只,兔只
2、编写一个程序,根据存款本金money、存款年数year和年利率rate来计算到期利息interest,输出时保留2位小数。
计算公式为:
interest=money×(1+rate)year-money。
输入输出示例:
Inputmoney,yearandrate:
1000,3,0.025
Interest=
3、编写一个程序,用getchar()函数接收从键盘输入的3个数字字符分别赋值给字符变量c1,c2,c3,以这三个字符对应的一个三位整数作为度数,输出其正弦函数的值。
(注意sin函数的单位为弧度P320)
输入输出示例:
输入3个数字字符:
123
sin(123)=
4、a
b
c
d
z
y
小写字母转盘:
对用户从键盘输入的任意一个小写字母,输出该字母后的第2个字母,如输入a,则输出c;输入b,则输出d;以此类推,输入y,则输出a。
第五周:
(3、扩展题、二元一次方程)
1.编写程序计算下面分段函数的值:
2x+5 (x<0)
f(x)= x2-x+3 (0≤x<10)
x3-7x (x≥10)
具体要求如下:
(1) 用if-elseif语句实现分支,自变量和函数值均用双精度类型。
(2) 自变量用scanf函数输入,给一些输入提示。
(3) 分别输入三种区间中x的值,检查输出函数值是否正确。
2.编写程序判断用户输入的字符是数字字符、字母字符还是其他字符。
具体要求如下:
(1) 自变量用scanf函数输入,给一些必要的输入提示。
(2) 用关系表达式和逻辑表达式来实现条件判断。
(3) 分别输入三种不同的字符,检查输出信息是否正确。
(选做)采用附录D中有关字符函数来实现本问题的条件判断。
3、编程:
按教材P82【训练3.3】的要求编写判断闰年的程序(暂不用嵌套语句!
)
闰年的条件为:
年份能被4整除但不能被100整除,或者年份能被400整除。
4、编程:
教材P84【训练3.4】的扩展题:
根据图3.17编程实现相应的判断。
5、编程:
教材P85习题12
第6周:
(4)
1、先自行分析以下程序运行结果,然后编辑并运行程序,验证自己分析的结果是否正确,如果自己分析的不正确,想想自己错在何处。
⑴#include"Stdio.h"
main()
{ inta=10;
switch(a)
{ case10:
case9:
a++;
case8:
case7:
a+=a;break;
case6:
a+=3;
default:
a+=4;}
printf("a=%d\n",a);
}
自己分析的结果:
运行程序后的结果:
⑵#include"stdio.h"
main()
{ inti,x;
for(i=1;i<=100;i++)
{ x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%3d",x);
}
}
自己分析的结果:
运行程序后的结果:
2.编程实现:
任意输入一个百分制成绩,输出成绩等级A、B、C、D。
当输入的分数小于0分或大于100分时,显示出错信息;在85~100分时为A,70~84分为B,55~69分为C,55分以下为D。
(提示:
综合应用if和switch结构实现,参考教材P71例题3.13)
3、编程实现:
从键盘任意输入一个年份year、月份month,计算并输出该年该月共有多少天。
提示:
本题要综合应用到if、switch结构(用switch(month)给出单、双月以及2月的天数)
4、输入一个实数x和一个正整数n,编程计算xn(不允许调用pow函数求幂,参考教材例题4.4)
5、编程输出所有十位或个位是2的所有三位数。
(参考教材P91例题4.3)
选做题:
1、对任意输入的一个日期(年year、月month、日day),计算并输出该年该月该日是这一年的第几天。
提示:
本题要综合应用到if、switch结构
2、从键盘输入10个学生的成绩,编程输出各个成绩、平均成绩和其中的最高分。
提示:
参考教材例题4.2、4.6
第7周:
(1、2、3、4、5)
1、先自行分析以下程序运行结果,然后编辑并运行程序,验证自己分析的结果是否正确,如果自己分析的不正确,想想自己错在何处。
#include
voidmain()
{inti,j,k;
for(i=0;i<=3;i++)
{for(j=0;j<=2-i;j++)
printf("");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");}
}
自己分析的结果:
运行程序后的结果:
2.编写程序,求满足2+4+6+…….+n>1000时的n的最小值及其和值。
提示:
参照P125习题13
3、编写程序,输入多个两位正整数(敲回车键结束输入),统计出其中小于等于40、大于40小于等于70、大于70的数据个数。
4、任意输入一串字符(敲回车键结束输入)。
分别统计出其中英文大写字母、英文小写字母、空格、数字和其它字符的个数。
提示:
先定义charc;用循环while((c=getchar())!
=’\n’)接收一行字符(敲回车表示字符输入结束,对输入的每一个字符进行判断并累加个数)
(参考教材P120训练4《.2中的相关提示和说明)
5、编写一个C程序,对用户任意输入的整数,判断该数是否为素数。
要求:
用户每输入一个整数,立即给出该数是否是素数的信息,然后等待用户重新输入一个整数继续判断,直到输入一个-1时结束。
选做题:
(P121训练4.3)编写用人机对话形式进行加、减、乘、除运算的程序。
用户每输入一次运算数和运算符,系统输出相应的计算结果。
当输入的运算符为“#”时结束。
提示:
本题要综合应用到while和switch结构
第8周:
(2、3、4、6(部分))
1、编程输出如下图所示的下三角形九九乘法表。
(参考补充例题)
2、编程:
输入2个正整数m和n(m>1,n<=500)输出m和n之间的所有素数,要求每行输出10个。
(参考P108例题4.19)
3、将100元人民币兑换成若干张20元、10元和5元人民币,要求每种面值的至少有一张,编程计算并输出如下图的所有兑换方案(参考P125习题15)
4、编程:
输入一个整数,求它的位数以及各位数字之和,例如,若输入123,则输出“123的位数为3,各位数字之和为6”。
(部分参考P127习题22中的部分代码)
选做题:
5、编写一个猜数游戏程序:
首先由计算机产生一个1~100之间的随机整数(提示:
可以用附录中的随机函数rand()),然后用户输入所猜的数,如果没有猜对,每次都给出“大了”或“小了”的提示,最多允许猜10次,如果10次都没有猜对,则给出相应提示并结束猜数;如果猜对了,则显示“恭喜你猜对了!
”,并给出总共用了多少次才猜对的信息。
6、编程验证哥德巴赫猜想:
任何一个大于6的偶数均可表示为2个素数之和。
如,6=3+3,8=3+5,10=3+7,10=5+5,……..20=3+17,20=13+7等。
编程将6~100之间的偶数都表示为2个素数之和。
第9周:
(选择题、YN)
一、单选题(每题4分,共40分)
1、若有定义:
inta=1,b=2,c=3;则执行printf(“%d”,c>b>a);的输出结果为()
A.1B.2C.3D.0
2、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()A.c=b=a;B.(a=c)‖(b=c);C.(a=c)&&(b=c);D.a=c=b;
3、若变量c为char类型,能正确判断出c为小写字母的表达式是()
A.'a'<=c<='z'B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)D.(c>='a')&&(c<='z')
4、若i是整型变量,执行以下循环语句后输出结果是()
for(i=1;i<=3;i++)
{if((i%2)printf("*");
elsecontinue;
printf("#");}
A.**##B.##**C.*#*#D.#*#*
5、有以下程序段:
intk=0;
while(k=10)k++;
while的循环执行的次数是()
A.无限次B.有语法错,不能执行
C.一次也不执行D.执行一次
6、将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是()
A.c=(a>b)?
a,b;B.c=(a>b)?
a:
b;
C.c=if(a>b)aelseb;D.(a>b)?
c=a:
c=b;
7、执行语句for(i=1;i++<4;);后变量i的值是()
A.3B.4C.5D.不定
8、求[1,100]区间内的整数的累加和,下列程序中有一个不能够完成规定的功能,是()
A)s=0;i=0;
while(i<=100)
s+=i++;
B)s=0;i=1;
while(i++<100)
s+=i;
C)s=0;i=0;
while(i<100)
s+=++i;
D)s=0;i=0;
while(++i<=100)
s+=i;
9、若有说明intx,y;并有如下的函数。
则不能实现计算该函数值的程序段是()
>0
A)y=-1;
if(x!
=0)
if(x>0)y=1;
elsey=0;
B)if(x<0)y=-1;
elseif(x==0)y=0;
elsey=1;
C)y=0;
if(x!
=0)
{if(x>0)y=1;
elsey=-1;}
D)if(x>=0)
if(x>0)y=1;
elsey=0;
elsey=-1;
10、有以下程序段,此程序中的循环在满足什么条件时结束?
()
intn=0,p;
do
{scanf("%d",&p);
n++;
}
while(p!
=12345&&n<3);
A.p不等于12345且n小于3B.p等于12345且n不小于3
C.p不等于12345或n小于3D.p等于12345或n不小于3
第10周:
(1、2、3、4、7)
1、分析以下程序执行的结果:
#include
main()
{inta[]={1,2,3,4},i,j,s=0;
j=1;
for(i=3;i>=0;i--)
{s=s+a[i]*j;
j=j*10;
}
printf(“s=%d\n”,s);
}
上机前分析结果:
实际上机结果:
2、程序填空及调试:
以下程序的功能是:
对一个已排好序的10个数,从键盘任意输入一个数插入,使之仍然有序。
(注意要利用设置断点、单步运行的方法调试程序)
#include
voidmain()
{inta[11]={1,4,6,9,13,16,19,28,40,100};
intnum,i,j;
printf("arraya:
\n");//依次输出原数组中的各个数
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insertdata:
");//输入待插入的数
scanf("%d",&num);
for(i=0;i<10;i++)
if(a[i]>num)
{for(j=9;j>=i;j--)
【1】;//填空后设置断点以查错
a[i]=num;
break;
}
else
a[10]=【2】;//填空后设置断点以查错
printf("Nowarraya:
\n");
for(i=0;【3】;i++)
printf("%5d",a[i]);
printf("\n");
}
3、编程:
定义一个整数数组a[10]并输入10个整数,输出其中的最大值、最小值及其所在的下标。
4、编程:
从键盘接受一个字符串,判定输入的字符串是否为回文(所谓回文是指正序和逆序排列结果是同样的,例如字符串abcdEdcba为回文)。
5、编程:
从键盘输入一串字符(长度不超过80),统计出各字母出现的次数(不区分大小写)。
选做题
6、设有下列矩阵:
A=
编写程序,用二维数组存储矩阵元素,从键盘输入数据,将矩阵转置后按行输出。
7、编程输出杨辉三角形(输出6行,如下图所示)
1
11
121
133
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 总结 题目