C和指针课后练习题4
1、下面表达式是否合法?如果合法,他执行什么任务?
3* x * x - 4 * x + 6;
合法;他只是执行了表达式求值,但是他的结果并不存于任何地方。
2、赋值语句的语法?
数据类型 变量名 = 表达式; // 表达式可以理解为一个值或一个计算公式
如:y=x+1
3、用下面的方法使用代码块是否合法?如果合法,你想怎么用?
.......... statement { statement statement } statement
合法;如果你需要为所附语句引入临时变量,但希望将对变量的访问限制为仅限于这些语句,那么这将非常有用。
4、当你编写if语句时,如果在then子句中没有语句,但在else字句中有语句,你该如何编写?你还能用其他形式来达到同样效果么?
1 if(表达式) 2 ; 3 else 4 语句;
1 if(表达式)
2 语句;
5、下面循环体将会产生什么样的输出?
1 int i; 2 ..... 3 for(i=0;i<10;i++) 4 printf("%d\n",i);
输出结果:0
1
2
3
4
5
6
7
8
9
6、什么时候使用while语句比使用for语句方便?
当循环次数未知的情况下,使用while语句方便
7、下面代码片段用于把标准输入复制到标准输出,并计算字符的检验和(checksum),他有什么错?
1 while ((ch=getchar()!=EOF) 2 checksum +=ch; 3 putchar(ch); 4 printf("Checksum=%d\n",checksum);
程序容易进入死循环。
8、什么时候使用do语句比使用while语句更加合适?
要求循环体至少执行一次的情况下。
9、下面代码将会产生什么结果?
1 #include<stdio.h> 2 int main() 3 { 4 int i; 5 for (i=1;i<4;i++) 6 { 7 switch(i%2){ 8 case 0: 9 printf("even\n"); 10 case1: 11 printf("odd\n"); 12 } 13 } 14 return 0; 15 }
运行结果:even odd
10、编写一些语句,从标准输入读取一个整型值,然后打印一些空白,空白行的数量由这个值指定。
#include <stdio.h> int main() { int m; printf("Please enter a number:"); scanf("%d",&m); for(int i=0;i<m;i++) { printf("\n"); } return 0; }
11、编写一些语句,用于对一些已经读入的值进行检验和报告。如果x小于y,打印单词WRONG。同样,如果a大于或等于b,也打印WRONG。在其他情况下,打印RIGHT。
1 #include <stdio.h> 2 int main() 3 { 4 int x,y,a,b; 5 printf("输入4个整数:"); 6 scanf("%d,%d,%d,%d",&x,&y,&a,&b); 7 8 if ((x<y)||(a>=b)) 9 printf("WRONG\n"); 10 else 11 printf("RIGHT\n"); 12 return 0; 13 14 }
12、能被4整除的年份是闰年,但其中能被100整除的却不是闰年,除非它同时能被400整除。编写语句,判断年份是否为闰年,如果是把变量leap_year设为1,否则为0.
1 #include<stdio.h> 2 int main() 3 4 { 5 int year,leap_year; 6 printf("输入一个年份:"); 7 scanf("%d",&year); 8 if(year%4==0) 9 { 10 if(year%100==0&&year%400==0) 11 leap_year=1; 12 else if(year%100==0&&year%400!=0) 13 leap_year=0; 14 } 15 else 16 leap_year=0; 17 printf("leap_year=%d\n",leap_year); 18 return 0; 19 }
13、新闻记者都受过训练,善于提问谁?什么?何时?何地?为什么?清编写一些语句,如果变量which_word的值是1,就打印who;为2,就打印what;依次类推。如果变量的值不在1~5之内就打印don‘t know。
1 #include<stdio.h> 2 int main() 3 4 { 5 int i; 6 printf("Please enter a number(1~5):"); 7 scanf("%d",&i); 8 switch(i) 9 { 10 case 1: 11 printf("who\n"); 12 break; 13 case 2: 14 printf("what\n"); 15 break; 16 case 3: 17 printf("when\n"); 18 break; 19 case 4: 20 printf("where\n"); 21 break; 22 case 5: 23 printf("why\n"); 24 break; 25 default: 26 printf("don't know\n"); 27 break; 28 } 29 return 0; 30 }
14、假定一个程序来控制你,而且这个程序包含两个函数:eat_hamberger()用于让你吃汉堡,hunger函数根据你是否饥饿返回真假值。编写一条语句允许你在饥饿感得到满足之前爱吃对少就吃多少汉堡。
while(hungry()) { eat_humberger(); }
15、修改问题14,让你至少吃一次汉堡。
do { eat_humberger(); } while(hungry())
16、编写一些语句,根据变量precipitating和temperture的值打印当前天气的简单总结。
如果precitating为 | 而且tempreture是 | 那就打印 |
true |
<32 >=32 |
snowing raining |
false |
<60 >=60 |
cold warm |
#include<stdio.h> int main() { int pre,tem; printf("precipiting="); scanf("%d",&pre); printf("tempreture="); scanf("%d",&tem); if(pre) { if(tem<32) printf("snowing\n"); else printf("raining\n"); } else { if(tem<60) printf("cold\n"); else printf("warm\n"); } return 0; }
专业的物联网解决方案提供商,提供基于wifi和蓝牙的从app 到模组芯片的一体化解决方案,长期承接乐鑫,BES,stm32等芯片的方案设计开发及服务。 商务合作和技术探讨:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |