(完整版)c语言分支结构习题

合集下载

C语言程序设计结构习题与答案

C语言程序设计结构习题与答案

C语言程序设计结构习题与答案1. 介绍C语言是一种广泛应用于系统软件和应用软件开发的高级程序设计语言。

C语言程序设计结构是指程序的组织形式和编写规范。

在学习C 语言时,我们需要通过练习习题来提升自己的编程能力。

本文将介绍一些C语言程序设计结构习题,并给出相应的答案。

2. 基本语法习题2.1 输出Hello, World!要求:编写一个程序,在屏幕上输出"Hello, World!"。

答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2.2 输入输出整数要求:编写一个程序,从键盘输入一个整数,然后将其加1后输出。

答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("加1后的值为:%d\n", num + 1);return 0;}```3. 控制结构习题3.1 判断奇偶数要求:编写一个程序,判断一个输入的整数是奇数还是偶数,并输出相应的结果。

答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("输入的整数为偶数\n");} else {printf("输入的整数为奇数\n");}return 0;}```3.2 计算阶乘要求:编写一个程序,计算输入的正整数的阶乘并输出。

答案:```c#include <stdio.h>int main() {int num, factorial = 1, i;printf("请输入一个正整数:");scanf("%d", &num);for (i = 1; i <= num; i++) {factorial *= i;}printf("%d的阶乘为:%d\n", num, factorial);return 0;}```4. 数组与函数习题4.1 求数组元素和要求:编写一个程序,计算一个整型数组中所有元素的和并输出结果。

(完整版)c语言分支结构习题

(完整版)c语言分支结构习题

分支结构1、以下4个选项中,不能看作一条语句的是(d)A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;2、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(a)A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c))k=1else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;3、有以下程序main(){ int i=1,j=1,k=2;if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);}执行后输出的结果是 CA) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,34、有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是BA) 2 B) 3 C) 4 D) 编译时有错,无结果5、有以下程序main(){ int a=15,b=21,m=0;switch(a%3){ case 0:m++;break;case 1:m++;switch(b%2){ default:m++;case 0:m++;break;}}printf("%d\n",m);}程序运行后的输出结果是_ A__。

A) 1 B) 2 C) 3 D) 46、以下程序的输出结果是Cmain(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A) 5 B) 4 C) 6 D) 不确定7、以下程序的输出结果是Amain(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A) 1 B) 0 C) 非0的数 D) -18、能正确表示逻辑关系:"a≥=10或a≤0"的C语言表达式是DA) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=09、有如下程序main0{ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是 AA) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=210、有如下程序main(){ float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是CA) 0.000000 B) 0.250000 C) 0.500000 D) 1.00000011、有如下程序main(){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是A) 0 B) 1 C) 2 D) 312、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是CA) c=b=a;B) (a=c) ‖(b=c) ;C) (a=c) &&(b=c); D) a=c=b;13、能正确表示a和b同时为正或同时为负的逻辑表达式是DA) (a>=0‖b>=0)&&(a<0‖b<0) B) (a>=0&&b>=0)&&(a<0&&b<0)C) (a+b>0)&&(a+b<=0) D) a*b>014、以下程序输出结果是 BA)7 B) 6 C) 5 D) 4main ( ){ int m=5;if (m++>5 print ("%d\n",m); else printf ("%d\n",m--); }。

C语言第4章-分支结构.

C语言第4章-分支结构.
❖注意表达式之间的顺序关系 ❖课堂作业:将表达式位置倒过 来后,即低等级先判断,高等级 后判断,完成框图与程序
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§

§
case ‘A’:
§
case ‘a’: ++count ; break ;
§

(完整版)C语言选择题(附答案)

(完整版)C语言选择题(附答案)

第一单元C语言概述一、选择题1、C语言中主函数的个数为(A)个。

A)1 B)2C)无穷个D)任意个2、以下关于C语言描述错误的是(D)。

A)一个C程序总是从main函数开始执行TB)每个语句和数据声明的最后必须有一个分号TC)C语言的注释符是以“/*”开始并以“*/”结束的TD)一个C程序可以包含多个main函数F3、C 语言源程序文件后缀为(C )。

A).EXE B).OBJ C).C D).ASM4、C语言是由(C )组成的。

A)子程序B)主程序与子程序C)函数D)过程5、C语言属于(B )语言A)机器语言B)汇编语言C)高级语言D)面向对象语言第二单元C语言基础一、选择题1、C语言中普通整型变量int在内存中占(B )字节。

A)1 B)2 C)3 D)42、下列不是C语言基本数据类型的是(A )。

A)字符型B) 整型C) 浮点型D) 结构体3、有关自增、自减运算,以下只有(D )是正确的。

A) ---f B) ++78 C) a—b++ D) d++4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (A<B && !C>B)的值是(A )。

A)0 B)10 C)1 D)55、若有x=1,y=2,z=3,则表达式(x<y?x:y)= =z的值是(D )。

A)1 B)2 C)3 D)06、判断char型变量ch是否为大写字母的正确表达式是(C )。

A) ‘A’<=ch<=‘Z’B) (ch>=‘A’)&(ch<=‘Z’)C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)7、判断整型变量digit是否为数字的正确表达式是(C )。

A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’)C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch)8、一个C程序的执行是从(A )。

(完整版)C语言各章节复习题(带答案)

(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。

A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。

A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。

A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。

A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。

C语言分支结构程序举例

C语言分支结构程序举例

C语言分支结构程序举例输入三个整数,输出最大数和最小数。

1.#include<stdio.h>2.int main(void){3.int a,b,c,max,min;4.printf("input three numbers: ");5.scanf("%d%d%d",&a,&b,&c);6.if(a>b){7.max=a;8.min=b;9.}else{10.max=b;11.min=a;12.}13.if(max<c){14.max=c;15.}else if(min>c){16.min=c;17.}18.printf("max=%d\nmin=%d",max,min);19.return0;20.}本程序中,首先比较输入的a、b的大小,并把大数装入max,小数装入min中,然后再与c比较,若max小于c,则把c赋予max;如果c小于min,则把c赋予min。

因此max内总是最大数,而min内总是最小数。

最后输出max和min的值即可。

计算器程序。

用户输入运算数和四则运算符,输出计算结果。

1.#include<stdio.h>2.int main(void){3.float a,b;4.char c;5.printf("input expression: a+(-,*,/)b \n");6.scanf("%f%c%f",&a,&c,&b);7.switch(c){8.case'+':printf("%f\n",a+b);break;9.case'-':printf("%f\n",a-b);break;10.case'*':printf("%f\n",a*b);break;11.case'/':printf("%f\n",a/b);break;12.default:printf("input error\n");13.}14.return0;15.}本例可用于四则运算求值。

分支结构习题课

分支结构习题课


分支结构
– 分支结构:按给定条件进行判断,按判断后的 不同情况进行不同处理。
– C语言有二种分支语句:
– 二路分支选择结构 – 多路分支选择结构 if 语句 switch 语句
5
if语句(条件分支语句)

if语句的两种形式 – 形式一(缺省形式): • 格式:if (expression) statement • 执行过程:
12
if语句嵌套
例: #include “stdio.h” main() { int x=4,y=5,z=2,max; max=x; if(z>y) if(z>x) max=z; else if(y>x) max=y;
结果: max=4
printf(“max=%d”,max);
}
13
if语句嵌套: 一般形式: if (expr1) if (expr2) statement1 else statement2 if (expr1) statement1 else if(expr3) statement2 else statement3
18
6 计算个人所得税 tax=rate*(salary-850)/100 其中 tax所得税 salary月薪 rate税率 月薪 salary≤850 850<salary≤1350 1350<salary≤2850 2850<salary≤5850 5850<salary rate税率 0 5 10 15 20 #include<stdio.h> void main() { int salary; float rate,tax; printf("input salary=\n"); scanf("%d",&salary); if(s<=850) r=0; if(850<s&&s<=1350) r=5; if(1350<s&&s <=2850) r=10; if(2850<s&&s <=5850) r=15; if(s>5850) r=20; tax=rate*(salary-850)/100) printf("tax=%f",tax); }

c语言分支结构的练习

c语言分支结构的练习

课堂练习1 课堂练习 输入10个字符,统计其中英文字母、数字 字符和其他字符的个数。(使用else-if语句) 课堂练习2 写程序,判某一年是否闰年。闰年算法: 课堂练习 满足下列二者之一,是闰年。 ② 能被4整除,且能被400整除。 ① 能被4整除,但不能被100整除。 课堂练习3 课堂练习 输入一个正整数n,再输入n个学生的成绩, 计算平均分,并统计不及格成绩的个数。
else
if(表达式 语句 表达式3) 语句3 表达式 else 语句 语句4
else 与最靠近它的、没有与别的 else 匹配过的 if 匹配 与最靠近它的、
if(表达式 表达式1) 表达式 if(表达式 语句 表达式2) 表达式 语句1 else if(表达式 语句 表达式3) 表达式 语句3 else 语句4 语句
else
if(表达式 语句 表达式3) 语句3 表达式 else 语句 语句4
真 表达式 1 真 表达式 2 假 假 真 假
表达式 3
语句1 语句
Байду номын сангаас语句2 语句
语句3 语句
语句4 语句
else 和 if 的匹配
if(表达式 表达式1) 表达式
if(表达式 语句 表达式2) 语句1 表达式 else 语句 语句2 if(表达式 表达式1) 表达式 if(表达式 语句 表达式2) 表达式 语句1 else if(表达式 语句 表达式3) 表达式 语句3 else 语句 语句4
多次输入测试数据的方法
while(scanf(“%d”, &a) != EOF) Ctrl + d
字符输入/输出 字符输入 输出
getchar()函数将输入流中的空白符也作为 函数将输入流中的空白符也作为 一个字符读入 调用scanf和printf输入输出字符 调用 和 输入输出字符

C语言程序-分支结构题目及答案

C语言程序-分支结构题目及答案

C语言程序-分支结构题目及答案(共9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--01. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。

#include <>void main(){ char c;scanf("%c",&c);if(c>='A'&&c<='Z') c=c+32;else if(c>='a'&&c<='z') c=c-32;printf("%c",c);}02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。

如果是,输出Yes,否则输出No。

#include <>void main(){ int a;scanf("%d",&a);if(a%5==0&&a%7!=0) printf("yes");else printf("no");}03. 从键盘输入一个4位正整数,求其逆序数,并输出。

例如:若输入1234,则输出应该是4321。

#include <>void main(){ int n,g,s,b,q,m;scanf("%d",&n);q=n/1000; b=n/100%10; s=n/10%10; g=n%10;m=g*1000+s*100+b*10+q;printf("%d\n",m);}01. 从键盘输入一个字符,如果是字母,就输出其对应的ASCII码;如果是数字字符,就转换成对应整数并输出。

#include <>void main(){ char c;scanf("%c",&c);if(c>='a'&&c<='z'||c>='A'&&c<='Z')printf("ASCII:%d",c);else if(c>='0'&&c<='9') printf("数字:%d",c-'0');}02. 从键盘输入一个数,判断其是否能同时被3和5整除。

c语言分支结构试题

c语言分支结构试题

c语言分支结构试题C语言的分支结构是编程中常用的一种结构,用于根据条件的不同执行不同的代码块。

下面是一些C语言分支结构的试题及其解答。

1. 请解释C语言中的if语句,并给出一个简单的示例代码。

if语句是C语言中用于条件判断的一种结构。

它根据条件的真假来决定是否执行特定的代码块。

示例代码:c.#include <stdio.h>。

int main() {。

int num = 10;if (num > 0) {。

printf("num是正数\n");}。

return 0;}。

以上代码中,如果变量`num`的值大于0,则会输出"num是正数"。

2. 请解释C语言中的if-else语句,并给出一个示例代码。

if-else语句是C语言中用于条件判断的一种结构,它根据条件的真假来决定执行不同的代码块。

示例代码:c.#include <stdio.h>。

int main() {。

int num = 10;if (num > 0) {。

printf("num是正数\n");} else {。

printf("num是负数\n");}。

return 0;}。

以上代码中,如果变量`num`的值大于0,则会输出"num是正数";否则,会输出"num是负数"。

3. 请解释C语言中的if-else if-else语句,并给出一个示例代码。

if-else if-else语句是C语言中用于多条件判断的一种结构,它根据多个条件的真假来决定执行不同的代码块。

示例代码:c.#include <stdio.h>。

int main() {。

int num = 0;if (num > 0) {。

printf("num是正数\n");} else if (num < 0) {。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

分支结构练习题

分支结构练习题

分支结构练习题C语言分支结构练习题enjoy it ! C语言分支结构练习题一、选择题1.假定所有变量均已正确定义,下列程序段运行后y的值是。

int a=0, y=10; if (a=0) y--; else if(a>0)y++;else y+=y; A. 20 B. 11 C. 9 D. 0 2.假定所有变量均已正确定义,下列程序段运行后x的值是。

a=b=c=0;x=35; if (!a) x--; else if(b); if(c) x=3; else x=4; A. 34 y=-1; if(x!=0) if(x>0) y=1; else y=0; -1 (x0)0 (x-1 (x0)C. y =-1 (x=0)D. y =1 (x=0) 1 (x0) B. y =B. 4C. 35D. 3 3.下面的程序片段所表示的数学函数关系是。

1 (x>0) int i=1;switch(i++){ 4. 假定i和j为int型变量,则执行以下语句后j 的值为。

case 1: for(j=0;jB. 1C. 9D. 105. 在C语言的语句中,用来决定分支流程的表达式是。

A. 可用任意表达式B. 只能用逻辑表达式或关系表达式 D. 只能用关系表达式 C. 只能用逻辑表达式4.为了避免嵌套的if-else语句的二义性,C语言规定else 总是与组 1 / 8 C语言分支结构练习题enjoy it ! 成配对关系。

A.缩排位置相同的if B.在其之前未配对的if D.同一行上的if C.在其之前未配对的最近的if A.只能是0或 1 5.逻辑运算符两侧运算对象的数据类型。

B.只能是0或非0正数D.可以是任何类型的数据C.只能是整型或字符型数据6.以下关于运算符优先顺序的描述中正确的是。

A.关系运算符B.&& C.+ D.!= 8.选择出合法的if语句。

A.if(a=b) c++; B.if(a=b) c++; C.if(ab) c++; 的表达式是。

C语言第3章_分支结构

C语言第3章_分支结构

3.3练习与习题参考答案3.3.1练习参考答案3-1 例3-4中使用else-if 语句求解多分段函数,为了检查else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。

解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。

可再给出x=0和x=15时的两种情况。

3-2 计算符号函数的值:输入一个整数x ,计算并输出符号函数 sign(x) 的值。

试编写相应程序⎪ ⎩⎪ ⎨ ⎧ >=<−==010001)(x x x x sign y ,,,解答:#include<stdio.h>int main (void){int x, y;scanf ("%d", &x);if (x > 0) y = 1;else if (x == 0) y = 0;else y = -1;printf ("sign(%d) = %d\n", x, y);return 0;}3-3统计学生平均成绩与及格人数:输入一个正整数n,再输入n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。

试编写相应程序。

解答:#include <stdio.h>int main (void){int count, grade, i, n;double average, sum;scanf ("%d", &n);count = 0;sum = 0;for (i = 1; i <= n; i++){scanf ("%d", &grade);sum = sum + grade;if (grade >= 60) {count++;}}if (n > 0) {average = sum / n;}else{average = 0;}printf ("average = %.1f\n", average);printf ("count = %d\n", count);return 0;}3-4统计字符:输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

(完整)数据结构(C语言)【经典题库】含答案,推荐文档

(完整)数据结构(C语言)【经典题库】含答案,推荐文档

《数据结构与算法》复习题选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是 D 。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。

(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。

s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。

for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(logn) 。

3i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。

C语言分支结构上机真题答案与解析

C语言分支结构上机真题答案与解析

分支语句(9题)第1题:#include <math.h>double fun1(double x){/**/if else多层选择结构,注意写条件时,判断两个数相等用两个等号,一个等号是赋值操作if(x<3) return 1.2;else if(x==3) return 10;else return 2*x+1; /**/}void main(){clrscr();printf("fun1(0.76) = %8.3lf\n", fun1(0.76));printf("fun1(3.00) = %8.3lf\n", fun1(3.00));printf("fun1(3.76) = %8.3lf\n", fun1(3.76));}第二题:打开程序Cprog 041.c,其中的fun( )函数,使其计算: f (x)=⎪⎩⎪⎨⎧>++≤02)sin(2.300x x x x输入:12 32.25 0.113输出:f (12.000)=10.387f (32.250)=12.935f (0.113) =1.568#include <stdio.h>#include <math.h>double f(float x){/**/if(x<=0) return 0;else return (fabs(x)+3.2)/(sin(x)+2);/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);y = f(x);printf("f(%.3f)=%.3f\n",x,y);getch();}第3题:#include <stdio.h>#include <math.h>double f(float x){/**/if(fabs(x)<700) return sqrt(5.8+fabs(x))/(cos(x)+2.1);else return -1;/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);y = f(x);printf("f(%0.2f)=%0.2f\n",x,y);getch();}第4题:求已知函数f( )的值打开程序Cprog 061.c,完成其中的f( )函数,使其计算: f(x)=⎪⎩⎪⎨⎧≥-<+3001300)6.2lg(3x x x x如:输入:0.8,输出f(0.80)=0.96输入:4.5,输出f(4.50)=107.05输入:725,输出f(725.00)=-1.00#include <stdio.h>#include <math.h>double f(float x){/**/注意数学里的lg 对应的C 数学函数名为log10,ln 对应的是logif(fabs(x)<300) return pow(x,3)/log10(fabs(x)+2.6);else return -1;/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);y = f(x);printf("f(%0.2f)=%0.2f\n",x,y);getch();}第5题:打开程序Cprog 062.c,完成其中的fun( )函数,使其实现四则运算的功能,如:输入:3.2 2.1输出:3.20+2.10=5.303.20-2.10=1.103.20*2.10=6.723.20/2.10=1.52#include <stdio.h>#include <math.h>float fun(float a,char flag,float b){/**/switch 语句课本5.4,注意case需与后跟的常量用空格格开不要连在一起switch(flag){case '+': return a+b;break;case '-': return a-b; break;case '*': return a*b; break;case '/': return a/b; break;}/**/}void main(){float a,b;printf("Please input two numbers:\n");scanf("%f%f",&a,&b); 注意scanf的格式printf("%.2f+%.2f=%.2f\n",a,b,fun(a,'+',b));printf("%.2f-%.2f=%.2f\n",a,b,fun(a,'-',b));printf("%.2f*%.2f=%.2f\n",a,b,fun(a,'*',b));printf("%.2f/%.2f=%.2f\n",a,b,fun(a,'/',b));getch();}第6题:f x函数,使其对输入的一个月工资数额,求应交税款,设应交税款打开程序cprog071.c,完成其中的()的计算公式如下:0 x≤1600(x-1600)*5%-25 1600<x≤2100f(x)=(x-1600)*10%-25 2100<x≤3100(x-1600)*15%-125 x>3100例如:输入:1825 输出:()182511.25f = 输入:2700 输出:()270085.00f =输入:5655 输出:()5655483.25f = #include <stdio.h>#include <math.h>double f(float x){/**/if else 多层选择结构,本题题目出错,第2个表达式应该没有-25,考试时注意下,不要-25 就跟答案一样了double y;if(x<=1600) y=0;else if(x<=2100) y=(x-1600)*0.05;else if(x<=3100) y=(x-1600)*0.1-25;else y=(x-1600)*0.15-125;return y;/**/}void main(){float x;double y;clrscr();printf("Please input a number:\n");scanf("%f",&x);y = f(x);printf("f(%.2f)=%.2f\n",x,y);getch();}第7题:打开程序cprog 081.c 完成其中f (x)函数,使其计算f (x)=⎪⎩⎪⎨⎧>+≤+0)2(0)2(ln 2x x x x x x e如输入-1.2则输出f (-1.200)=0.241输入6 则输出f (6.000)=19.879#include <stdio.h>#include <math.h>double f(float x){/**/if(x<=0) return (x+2)*exp(x);else return (x+2)*log(2*x);/**/}void main(){float x;double y;printf("Please input a number:\n");scanf("%f",&x);y = f(x);printf("f(%.3f)=%.3f\n",x,y);getch();}第8题:#include <stdio.h>#include <math.h>int fun(/**/ float a,float b,float c /**/)形式参数是用来接受被main函数调用时传递给它的值的,故其类型跟传给它的值类型一致,观察main函数,传给它的值都是float型,故此处定义为float型,另注意定义形参时,每个变量前都应该加类型说明,即不能写为float a,b,c{float temp;int bTrue = 0;bTrue做为返回值,从下面程序分析可知0代表不能构成直角三角形,1代表可构成,此处先假设不能构成if(a<b)若a<b则将a和b的值交换{ temp = a;a = b;b = temp;}if(a<c)若a<c则将a和c的值交换{ temp = a;a = c;c = temp;}以上两个if语句后使a存放的是三边中的最大边长if( fabs(/**/ a*a /**/ - (b*b + c*c)) < 1.0e-15)若两边平方和与另一边平方和的绝对值小于一个极小数,则构成直角三角形bTrue = 1;能构成直角三角形给bTrue赋值为1return bTrue;}main(){float a,b,c;printf("Please input three numbers:\n");scanf("%f%f%f",&a,&b,&c);if( fun(a,b,c) == 1) a,b,c的类型决定了fun函数内参数的类型printf("Yes\n");elseprintf("No\n");getch();}第9题:#include <stdio.h>void main(){double x;int n;double fun(double x,int n);printf("Please enter x,n:");scanf("%lf%d",&x,&n);printf("fun=%lf\n",fun(x,n));getch();}double fun(double x,int n){ /**/if(n==0) return 1;else if(n==1) return x;else return ((2*n-1)*x-fun(x,n-1)-(n-1)*fun(x,n-2))/n; 本题为递归表达式,书写时注意参数的传递,此处可观察fun函数有两个参数,故应传递两个相应的参数。

02-顺序结构练习(答案)分支结构 学案(一)

02-顺序结构练习(答案)分支结构 学案(一)

顺序结构练习(答案)【练1】键盘输入一个正方形的边长a,求该正方形与其内切圆所夹部分的面积并输出。

(见右图)【练2】一物体以速度v米/秒匀速运动,求经过t秒后物体运动的距离s 。

请按计算机处理问题的一般过程,最终画出流程图。

(略)【练3】输入一个二位正整数n,输出它的十位数x 。

提示:利用取整函数取十位数x=int(n/10)(略)【练4】输入任意一个三位正整数n,输出这个三位数各位数字之和total。

例如:输入456,输出结果为15。

●分析问题:输入什么数据?(三位正整数n)处理什么问题?(分别求出各位数字,并计算它们的和total)输出什么数据?(所求得的和total)●设计算法:百位数a=int(n/100);十位数b=int((n-a*100)/10);个位数c=n-a*100-b*10;total=a+b+c。

注:除了用取整函数外,还可以与取余数运算符mod结合使用。

个位数c=n mod 10;十位数 b=(int(n/10)) mod 10;百位数 a=int(n/100)。

画流程图:(见右图)●编写程序:(略)●运行程序:上机调试与维护(略)【练5】输入一元二次方程的系数a、b、c(确保b2-4ac>0),计算并输出两个实根x1、x2。

提示:函数sqr(x),即x的算术平方根●分析问题输入什么数据?(系数a、b、c,保证b2-4ac>0)处理什么问题?(计算方程的两个实根x1和x2)输出什么数据?(所求得的两个实根x1和x2)●设计算法:根据数学知识得知:d=b*b-4*a*c;x1=(-b+sqr(d))/2/a;x2=(-b-sqr(d))/2/a。

或 x1=(-b+sqr(d))/(2*a);x2=(-b-sqr(d))/(2*a)。

注意表达式的写法,表达式中的(2*a)学生容易漏掉()。

画流程图:(见右图)●编写程序:(略)●运行程序:上机调试与维护(略)【练6】求银行利息:n元人民币存一年,到期后领取的总金额是多少?可得利息多少?假设年利率为4.14%。

C语言程序-分支构架题目及答案

C语言程序-分支构架题目及答案

精心整理21.htm01.从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。

#include<stdio.h>}02.Yes ,{inta;scanf("%d",&a);if(a%5==0&&a%7!=0)printf("yes");elseprintf("no");} 03.从键盘输入一个4位正整数,求其逆序数,并输出。

例如:若输入1234,则输出应该是4321。

#include<stdio.h>voidmain(){intn,g,s,b,q,m;scanf("%d",&n);}01.printf("ASCII:%d",c);elseif(c>='0'&&c<='9')printf("数字:%d",c-'0');}02.从键盘输入一个数,判断其是否能同时被3和5整除。

如果是,输出Yes,否则输出No。

#include<stdio.h>voidmain(){inta;scanf("%d",&a);if(a%3==0&&a%5==0)printf("yes");03.2523,}01.根据以下函数关系编写一个程序,对输入的每个x值,计算出y的值并输出。

elseif(x<10)y=2*x;elsey=x*x;printf(“x=%d,y=%d\n”,x,y);}02.从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。

如果是,输出Yes,{inta;}03.就{intn,g,s,b,q,w;scanf("%d",&n);w=n/10000;q=n/1000%10;b=n/100%10;s=n/10%10;g=n%10;if(w==g&&q==s)printf("%d是对称数\n",n);elseprintf("%d不是对称数\n",n);}01.编一个C程序,从键盘上输入一个字符:若该字符是数字字符,则把它转换为对应的整数并输出;若该字符是大写字母,则转换成小写并输出;若该字符是小写字母,则转换为大写并输出;}02.{inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}{t=b;b=c;c=t;}printf(“%d,%d,%d",a,b,c);}03.给出一个百分制的成绩,要求输出成绩等级“A”、“B”,“C”,“D”,“E”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分支结构
1、以下4个选项中,不能看作一条语句的是(d)
A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m
=1;n=2;
2、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(a)
A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c))
k=1
else k=0;
C)if(a<=b) k=0; D)if(a>b) k=
1;
else if(b<=c) k=1; else if(b>
c) k=1;
3、有以下程序
main()
{ int i=1,j=1,k=2;
if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);
}
执行后输出的结果是 C
A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3
4、有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出的结果是B
A) 2 B) 3 C) 4 D) 编译时有错,无结果
5、有以下程序
main()
{ int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是_ A__。

A) 1 B) 2 C) 3 D) 4
6、以下程序的输出结果是C
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));}
A) 5 B) 4 C) 6 D) 不确定
7、以下程序的输出结果是A
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A) 1 B) 0 C) 非0的数 D) -1
8、能正确表示逻辑关系:"a≥=10或a≤0"的C语言表达式是D
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=0
9、有如下程序
main0
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是 A
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
10、有如下程序
main()
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
该程序的输出结果是C
A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000
11、有如下程序
main()
{ int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c++;
printf("%d\n",c);
}
该程序的输出结果是
A) 0 B) 1 C) 2 D) 3
12、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是C
A) c=b=a;B) (a=c) ‖(b=c) ;C) (a=c) &&(b=c); D) a=c=b;
13、能正确表示a和b同时为正或同时为负的逻辑表达式是D
A) (a>=0‖b>=0)&&(a<0‖b<0) B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0) D) a*b>0
14、以下程序输出结果是 B
A)7 B) 6 C) 5 D) 4
main ( )
{ int m=5;
if (m++>5 print ("%d\n",m); else printf ("%d\n",m--); }。

相关文档
最新文档