C语言模拟试题练习
人的知识愈广,人的本身也愈臻完善。以下是小编为大家搜索整理的C语言模拟试题练习,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!
基本输入输出及流程控制
1.
#include
main
int a=1,b=3,c=5;
if c==a+b
printf"yes\n";
else
printf"no\n";
运行结果为:no
详见教材p89 选择结构
详见教材p91关系符号
详见附录D p378符号的优先级
==表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量
本题考点是选择结构3种基本形式的第二种
选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用 括起来,只有当复合语句中只包括一条语句时可以省略 ,此题即如此,因此两个printf操作没有加
若c==a+b成立,则执行printf"yes\n";
否则即c==a+b不成立,执行printf"no\n";
+的优先级高于==,因此先算a+b,值为4, 表达式5==4不成立,因此执行printf"no\n";即输出字符串no
2.
#include
main
int a=12, b= -34, c=56, min=0;
min=a;
ifmin>b
min=b;
ifmin>c
min=c;
printf"min=%d", min;
运行结果为: min=-34
详见教材p89 选择结构
本题考点是选择结构3种基本形式的第一种
一共包含了两个选择结构两个if语句
定义变量,并赋值 此时a=12, b= -34, c=56, min=0
将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。
若min>b成立,则执行min=b;
若min>c成立,则执行min=c;
输出min中的值
12大于-34,第一个if语句的表达式成立,因此执行min=b; 执行后min中的值被更新为-34.
-34小于56,第二个if语句的表达式不成立,因此不执行min=c;
最后输出min中的值,为-34.
3.
#include
main
int x=2,y= -1,z=5;
ifx ify<0
z=0;
else
z=z+1;
printf“%d\n”,z;
运行结果为:5
遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个if语句,其后的复合语句没有大括号 ,说明复合语句中只包含一条语句,进而省略了 。内层的if...else...是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if...else...作为第一个if语句的复合语句。
若表达式x 若y<0,则执行z=0;
否则即y>=0,执行z=z+1;
输出z
2>-1,表达式x 输出z中的值为5
4.
#include
main
float a,b,c,t;
a=3;
b=7;
c=1;
ifa>b
t=a;a=b;b=t;
ifa>c
t=a;a=c;c=t;
ifb>c
t=b;b=c;c=t;
printf"%5.2f,%5.2f,%5.2f",a,b,c;
运行结果为:1.00,2.00,7.00
详见教材p72数据的输出形式
本题包含了3个if语句,每个if语句后的 都不可省略,因为每个 中都包含了多条语句
若表达式a>b成立,则执行t=a;a=b;b=t;
若表达式a>c成立,则执行t=a;a=c;c=t;
若表达式b>c成立,则执行t=b;b=c;c=t;
输出a,b,c中的值,要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐
3小于7,因此表达式a>b不成立,因此不执行t=a;a=b;b=t;
3大于1,因此表达式a>c成立,则执行t=a;a=b;b=t;。第一句,将a中的3拷贝,粘贴到t中;第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3;第三句。将t中的`3拷贝到c中,覆盖掉c中先前的1. 执行完复合语句后实现了a,c元素的值的互换,a为1,c为3,t为3,。
7大于c中的3,因此b>c成立,执行则执行t=b;b=c;c=t;,过程同上,执行后b为3,c为7,t为7
此时输出a,b,c中的值为1.00,2.00,7.00
5.
#include< stdio .h >
main
floatc=3.0 , d=4.0;
if c>d c=5.0;
else
if c==d c=6.0;
elsec=7.0;
printf “%.1f\n”,c ;
运行结果为:7.0
此题为if...else...语句的嵌套,第二if...else...作为第一个if...else...语句else部分的复合语句。
若表达式c>d成立,则执行c=5.0;
否则表达式c>d不成立
若表达式c==d成立,则执行c=6.0;
否则,执行c=7.0;
输出c中的值
3.0小于4.0,因此表达式c>d不成立,执行第二个if…else…。
3.0不等于4.0,因此表达式c==d不成立,执行c=7.0,将7.0赋给c, 覆盖掉c中的3.0,此时c中的值为7.0
输出此时的c中的值
6.
#include
main
int m;
scanf"%d", &m;
if m >= 0
if m%2 == 0 printf"%d is a positive even\n", m;
else printf"%d is a positive odd\n", m;
else
if m % 2 == 0printf"%d is a negative even\n", m;
else printf"%d is a negative odd\n", m;
若键入-9,则运行结果为: -9 is a negative odd
7.
#include
main
int num=0;
whilenum<=2 num++;printf"%d\n",num;
运行结果为:
1
2
3
详见教材p115循环结构
当循环条件num<=2成立的时候,执行循环体 num++;printf"%d\n",num;中的语句。
循环初值num为0;
循环条件num<=2成立
第1次循环:执行num++;即将num中的值加1,执行后num为1;
执行printf"%d\n",num;在屏幕上输出num中的值,即输出1,之后换行
此时num中的值为1,循环条件num<=2成立
第2此循环:执行num++;即将num中的值加1,执行后num为2;
执行printf"%d\n",num;在屏幕上输出num中的值,即输出2,之后换行
此时num中的值为2,循环条件num<=2成立
第3此循环:执行num++;即将num中的值加1,执行后num为3;
执行printf"%d\n",num;在屏幕上输出num中的值,即输出3,之后换行
此时num中的值为3,循环条件num<=2不成立,结束循环。
8.
#include
main
int sum=10,n=1;
whilen<3 sum=sum-n;n++;
printf“%d,%d”,n,sum;
运行结果为:3,7
当循环条件n<3成立的时候,执行循环体sum=sum-n;n++; 中的语句。
循环初值sum为10,n为1;
循环条件n<3成立
第1次循环:执行sum=sum-n=10-1=9;
执行n++,即将n中的值加1,执行后n为2;
此时n中的值为2,sum中的值为9,循环条件n<3成立,继续执行循环
第2次循环:执行sum=sum-n=9-2=7;
执行n++,即将n中的值加1,执行后n为3;
输出此时n,sum中的值,即为3,7。需要注意,在printf“%d,%d”,n,sum; 中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号
9.
#include
main
int num,c;
scanf"%d",#
doc=num%10;printf"%d",c;whilenum/=10>0;
printf"\n";
从键盘输入23,则运行结果为:32
详见教材p117循环结构;p60复合的赋值运算符
do while表达式;
先无条件执行循环体,再判断循环条件。注意while表达式后有分号
定义整型变量num,c;
为num赋一个整型值;
执行c=num%10;printf"%d",c;直到循环条件num/=10>0不成立;
输出换行
已知为num赋值23
第1次执行循环体
执行c=num%10=23%10=3;
执行printf"%d",c;输出3
判断循环条件 num/=10等价于num=num/10; 因此num=23/10=2, 2大于0,因此循环条件num/=10>0成立,继续执行循环体。执行完第1次循环时,num为2,c为3
第2次执行循环体
执行c=2%10=2;
执行printf"%d",c;再输出2
判断循环条件num=2/10=0,0等于0,因此循环条件num/=10>0不成立。结束循环
10
#include
main
int s=0,a=5,n;
scanf"%d",&n;
do s+=1;a=a-2; whilea!=n;
printf"%d,%d\n",s,a;
若输入的值1,运行结果为: 2,1
详见教材p117循环结构;p60复合的赋值运算符
执行 s+=1;a=a-2; 直到循环条件a!=n不成立;
已知为n赋值1,s为0,a为5
第1次执行循环体
执行s+=1;等价于s=s+1=0+1
执行a=a-2; a=5-2=3
判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体。
执行完第1次循环时,s为1,a为3
第2次执行循环体
执行s+=1;等价于s=s+1=1+1=2
执行a=a-2; a=3-2=1
判断循环条件,1等于1,因此循环条件a!=n不成立,结束循环。
执行完第2次循环时,s为2,a为1
输出此时s,a中的值,结果为2,1