10.4作业

1、选择题

1.1、以下程序的输出结果是___A_____。

main()

{

int k1=1,k2=2,k3=3,x=15;

if(!k1) x--;

else if(k2)

if(k3) x=4;

else x=3;

printf("x=%d\n",x);

}

A x=4 B x=15 C x=14 D x=3

1.2、有以下程序,while循环执行___A_____次。

int main()

{

int k=2;

while(k=1)

printf("%d",k);

k--;

printf("\n");

}

A) 无限次 B) 2 C) 1 D) 0

1.3、有以下程序int main(){ int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) { a+=5; continue;} a-=3; } printf("%d\n",b);}程序运行后的输出结果是 B

A)3 B)4 C)5 D)6

1.4、有以下程序

#include <sthio.h>

int main()

{

int s=0,n;

for (n=0;n<3;n++) 0 1 2

{

switch(s)

{ case 0:

case 1:s+=1;

case 2:s+=2;break;

case 3:s+3;

case 4:s+=4;

}

printf(("%d\n",s);

}

}

程序运行后的结果是 A

A)1,2,4 B) 3,10,10 C) 3,6,10 D) 3, 7, 7

1.5、有以下程序

#include<stdio.h>

int main()

{int a=1,b=0;

if(-a) b++;

else if(a=0)b+=2; else b+=3;

printf("%d\n",b);

)

程序运行后的输出结果是(B )。

A)0 B)1 C)2 D)3

1.6有以下程序

#include<stdio.h>

int main()

{

int a=7;

while(a--);

printf("%d\n",a);

}

程序运行后的输出结果是(A )。

A)-1 B)0 C)1 D)7

1.7、

2、填空题

2.1、以下程序运行结果是( 3 )。

#include<stdio.h>

int main()

{

int x=2,y=-1,z=2;

if(x<y)

if(y<0) z=0;

else z+=1;

printf("%d\n",z);

}

2.2以下程序的执行结果是( 20 )。

#include<stdio.h>

int main()

{

int a,b,c,d,x;

a=c=0;

b=1;

d=19;

if(a) d=d-10;

if(!c)

x=15;

else

x=25;

d++ ;

printf("d=%d\n",d);

}

2.3以下程序的执行结果是( first )。

#include<stdio.h>

int main()

{

int x=1,y=0;

switch(x)

{

case 1:

switch(y)

{

case 0:printf("first\n");break;

case 1:printf("second\n");break;

}

case 2:printf("third\n");

}

}

2.4 以下程序在输入5,2之后的执行结果是( s=2,t=3 )。

#include<stdio.h>

int main()

{

int s,t,a,b;

scanf("%d,%d",&a,&b);

s=1;

t=1;

if(a>0) s=s+1;

if(a>b) t=s+t;

else if(ab)

t=5;

else

t=2*s;

printf("s=%d,t=%d\n",s,t);

}

2.5 以下程序的执行结果是( # &)。

#include<stdio.h>

int main()

{

int a=2,b=7,c=5;

switch(a>0)

{

case 1:

switch(b<0)

{

case 1:printf("@");break;

case 2:printf("!");break;

}

case 0:

switch(c5)

{

case 0:printf("*");break;

case 1:printf("#");break;

case 2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

2.6 以下程序运行结果是( 551 )。

#include <stdio.h>

int main()

{

int x,y=1;

if(y!=0) x=5;

printf("\t%d\n" ,x);

if(y0) x=4;

else x=5;

printf("\t%d\n" ,x);

x=1;

if(y<0)

if(y>0) x=4;

else x=5;

printf("\t%d\n" ,x);

}

2.7 以下程序的运行结果是(444)

4 -2

4 0

4 -2 )

#include<stdio.h>

int main()

{

int x , y=-2, z=0;

if ((z=y)<0) x=4;

else if (y0)

x=5;

else

x=6;

printf("\t%d\t%d\n" ,x, z);

if(z=(y==0))

x=5;

x=4;

printf("\t%d\t%d\n" ,x,z);

if(x=z=y) x=4;

printf("\t%d\t%d\n" ,x,z);

}

3编程题、

3.1 编写程序实现:服装店经营套服,也单件出售,若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45元。输入所买上衣c和裤子t的件数,计算应付款m。

int main()

{

int s, k, m=0, t;

printf("输入上衣和裤子数量: ");

scanf("%d %d", &s, &k);

t = s < k ? s : k;

// 计算价格

if (t >= 50)

m += t * 80;

else

m += t * 90;

// 计算剩余单品价格

m += (s - t) * 60;

m += (k - t) * 45;

printf("应付款: %d元\n", m);

return 0;

}

4.思考题

4.1 下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么? int n; if (n == 10) // 第一种判断方式 if (10 == n) // 第二种判断方式、

第一种,左值为变量更符合编程习惯

第二种写法 if (10 == n) 更好,原因是可以避免因笔误导致的逻辑错误

4.2 思考一下,计算1+2+3+......+100的和,最优化的算法是? 编程实现
#include <stdio.h>

int main()

{

int n = 100;

int sum = n * (n + 1) / 2;

printf(" %d\n", sum);

return 0;

}
4.3 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

  1. while (1)

  2. for (;;)

  3. do-while (1)

  4. goto 方式

相关推荐
JianminZheng2 小时前
MTPA算法原理及仿真验证
算法
im_AMBER3 小时前
Leetcode 38
笔记·学习·算法·leetcode
Miraitowa_cheems3 小时前
LeetCode算法日记 - Day 82: 环形子数组的最大和
java·数据结构·算法·leetcode·决策树·线性回归·深度优先
Code_Shark4 小时前
AtCoder Beginner Contest 426 题解
数据结构·c++·算法·数学建模·青少年编程
仰泳的熊猫4 小时前
LeetCode:698. 划分为k个相等的子集
数据结构·c++·算法·leetcode
豐儀麟阁贵4 小时前
4.5数组排序算法
java·开发语言·数据结构·算法·排序算法
Shinom1ya_4 小时前
算法 day 32
算法
WBluuue5 小时前
数据结构与算法:摩尔投票算法
c++·算法·leetcode
文火冰糖的硅基工坊6 小时前
[人工智能-大模型-66]:模型层技术 - 两种编程范式:数学函数式编程与逻辑推理式编程,构建起截然不同的智能系统。
人工智能·神经网络·算法·1024程序员节
im_AMBER7 小时前
Leetcode 34
算法·leetcode