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语言分支结构习题

分支结构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语言程序设计》实验四选择结构程序设计实验目的1、掌握分支

四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
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 ;
§
第06课 分支结构丨专题练习(解析版)

第6课分支结构(专题练习)1. 下面选项对分支结构理解错误的是()。
A. 能够根据判断条件,执行不同的语句块。
B. 条件判断只有真和假两种结果。
C. 语句块只能是一条语句。
D. 条件判断通常用关系表达式或逻辑表达式来进行描述。
【答案】C【解析】A 正确B 正确C 错误语句块可以是一条语句,也可以是多条语句。
D 正确2. Python中if-else语句是哪种结构的语法格式()A. 单分支结构B. 双分支结构C. 多分支结构D. 顺序结构【答案】B【解析】A 错误单分支结构使用的是if语句。
B 正确双分支结构使用的是if-else语句。
C 错误多分支结构使用的是if-elif-else语句。
D 正确顺序结构没有固定的语句,只需要自上而下、依次执行每一条语句即可。
3. 条件是由条件表达式来构成的,条件表达式的值为()。
A. 真和假B. 1和2C. 数字D. 字符串【答案】A【解析】分支结构中的条件判断通常用关系表达式或逻辑表达式来进行描述,表达式的结果要么成立,也称为真(true);要么不成立,也称为假(false)。
4. 下面哪个选项不属于分支结构的关键字()。
A. ifB. elifC. elseD. switch【答案】D【解析】在Python中,要构造分支结构可以使用if、elif和else关键字。
一般如果只有一种情况,可以单独使用if;如果有两种情况,可以使用if和else配套;如果有三者及以上,需要if、elif和else三者共同使用。
这里提醒一点,在Python中是没有switch语句结构的。
5. 能正确表示“只需满足a大于等于10和a小于等于0两个条件中的一个即可”的条件表达式是()。
A. a>=10 and a<=0B. a>=10 or a<=0C. a>=10 && a<=0D. a>=10 | a<=0【答案】B【解析】A 错误and表示两个条件必须同时满足。
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语言版数据结构试题及答案

习题一一、单选题1.在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( B )。
A. HL=p; p->next=HL;B. p->next=HL->next; HL->next=p;C. p->next=HL; p=HL;D. p->next=HL; HL=p;2.若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储( B )个元素.A. nB.n-1C. n+1D.不确定3.下述哪一条是顺序存储方式的优点?(A )A.存储密度大 B.插入和删除运算方便C. 获取符合某种条件的元素方便D.查找运算速度快4.设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3)DA.658 B.648 C.633 D.6535.下列关于二叉树遍历的叙述中,正确的是( AD ) 。
A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点6.k层二叉树的结点总数最多为( A ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.对线性表进行二分法查找,其前提条件是( B ).A.线性表以链接方式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C.线性表以顺序方式存储,并且按关键码值排好序D.线性表以链接方式存储,并且按关键码值的检索频率排好序8.对n个记录进行堆排序,所需要的辅助存储空为Cn) B. O(n) C. O(1) D. O(n2)A. O(1og29.对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K %7作为散列函数,则散列地址为0的元素有( D )个,A.1 B.2 C.3 D.410.下列关于数据结构的叙述中,正确的是( D ).A.数组是不同类型值的集合B.递归算法的程序结构比迭代算法的程序结构更为精炼C.树是一种线性结构D.用一维数组存储一棵完全二叉树是有效的存储方法二、填空题1.数据的逻辑结构被分为_集合结构、__线性结构、_树结构和_图结构四种。
程序设计基础实验2(分支结构程序设计) - 答案

分支结构程序设计[实验目的]1、进一步理解逻辑量的表示方法。
2、掌握C语言的逻辑运算符及逻辑表达式的正确使用。
3、熟练掌握if 语句与switch语句的正确应用。
[实验内容和步骤]1、有如下函数,请编程,输入x的值,输出y的值。
x (x<1)y= 2x-1 (1<=x<10)3x-11 (x>=10)#include <stdio.h>void main() {int x , y ;printf("Please input x : ") ;scanf("%d" , &x) ;if ( x < 1)y = x ;else if ( x >=1 && x < 10)y = 2 * x - 1 ;elsey = 3 * x - 11 ;printf("y = %d\n" , y) ;}2、根据学生成绩档次输出:成绩A档输出“85~100”成绩B档输出“70~84”成绩C档输出“60~69”其它输出“不及格”#include <stdio.h>void main() {int score ;printf("Please Input score: ") ;scanf( "%d" , &score ) ;if ( score >=85 && score <= 100)printf("85 ~ 100\n") ;else if (score >= 70 && score < 85)printf("70 ~ 84\n") ;else if (score >= 60 && score < 70)printf("60 ~ 69\n") ;elseprintf("bujige\n") ;}[问题讨论]1、对于多分枝选择结构何时使用if语句的嵌套,何时使用switch语句?2、 switch语句中break语句的作用是什么?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序分支结构题目及答案This model paper was revised by the Standardization Office on December 10, 202001. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。
#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整除。
如果是,输出Yes,否则输出No。
#include <>void main(){ int a;scanf("%d",&a);if(a%3==0&&a%5==0) printf("yes");else printf("no");}03. 从键盘输入一个4位正整数,求其各位数字之积,并输出。
例如:若输入2523,则输出应该是60。
#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*s*b*q;printf("\n%d\n",m);}01. 根据以下函数关系编写一个程序,对输入的每个x值,计算出y的值并输出。
else y=x*x;printf(“x=%d,y=%d\n ”,x,y);}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. 从键盘输入一个五位整数,判断它是不是对称数,并输出判断结果。
如43234就是对称数。
#include <>void main(){ int n,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);else printf("%d不是对称数\n",n);}01. 编一个C程序,从键盘上输入一个字符:若该字符是数字字符,则把它转换为对应的整数并输出;若该字符是大写字母,则转换成小写并输出;若该字符是小写字母,则转换为大写并输出;若该字符是其他字符,则不进行任何操作。
#include <>void main(){ char c;scanf("%c",&c);if(c>='0'&&c<='9') printf("%d\n",c-'0');else if(c>='A'&&c<='Z') printf("%c\n",c+32);else if(c>='a'&&c<='z') printf("%c\n",c-32);}02. 输入三个整数,按从大到小的顺序输出。
#include <>void main(){ int a,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; }if (b<c){ t=b;b=c;c=t; }printf(“%d,%d ,%d ",a,b,c);}03. 给出一个百分制的成绩,要求输出成绩等级“A”、“B”,“C”,“D”,“E”。
90分以上的为:“A”级,80~89分的为“B”,70~79分的为“C”,60~69分的为“D”,60分以下的为“E”。
#include <>void main(){ int grade;scanf(“%d”,&grade);switch(grade/10){ case 10:case 9: printf(“A\n”);break;case 8: printf(“B\n”);break;case 7: printf(“C\n”);break;case 6: printf(“D\n”);break;default:printf(”E\n”);break;}}01. 有一分段函数:1 ( x < -1 )y = 2 x + 9 ( -1 ≤ x ≤ 1 )5 x -3 ( x > 1 )从键盘输入 x 的值,输出 y 的值。
#include <>void main(){ int x,y;scanf(“%d”,&x);if (x<-1) y=1;else if (x<=1) y=2*x+9;else y=5*x-3;printf(“x=%d,y=%d\n ”,x,y);}02.编写一个C语言程序,要求从键盘输入三个整数,并根据对三个数的比较显示如下信息:①如果三个数都不相等则显示0;②如果三个数中有二个数相等则显示1;③如果三个数都相等,则显示2#include <>void main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);if (a==b && b==c) printf(“2\n ”);else if (a==b || b==c || a==c ) printf(“1\n ”);else printf(“0\n ”);}03. 从键盘输入一个数,判断它是否同时能被5和7整除,如果能输出“YES”,否则输出“NO”。
#include <>void main(){ int a;scanf("%d",&a);if(a%5==0&&a%7==0) printf("yes");else printf("no");}01.输入三角形三边长,判定是否能够组成三角形,并输出判定结果。
能够组成三角形的条件是:任意两边之和大于第三边(三种情况)#include <>void main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);if (a+b>c && b+c>a && a+c>b) printf(“YES\n ”);else printf(“NO\n ”);}02.从键盘输入一个四位正整数,输出其逆序数,并判断是否是对称数,如果是输出“YES”,否则输出“NO”。
提示:如果输入4253,先求出其每位上的数字,再重新组成其逆序数3524。
如果输入4224,求出其逆序数是4224,则其是对称数。
#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;if (n==m) printf(“YES\n ”);else printf(“NO\n ”);}03. 从键盘输入三个数,求其中最小者并输出。
#include <>void main(){ int a,b,c,min;scanf("%d%d%d",&a,&b,&c);if (a<b) min=a;else min=b;if (min>c) min=c;printf(“min=%d ",min); }。