C语言第四章编程练习题
第四章C语言单选练习

《C 语言程序设计》题库吕橙1一、单选题1、能正确表示a和b同时为正或同时为负的逻辑表达式是______。
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答案:D难度:1知识点:单选题/第四章2、若执行下面的程序时从键盘上输入3和4,则输出是______。
A:14 B:16 C:18 D:20答案:B难度:1知识点:读程序选结果/第四章3、设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。
A:'a'&&'b' B:a<=b C:a||+c&&b-c D:!((a<b)&&!c||1)答案:D难度:1知识点:单选题/第四章4、设a=5、b=6、c=7、d=8、m=2、n=2,执行(m=a>b)&&(n=c>d)后n的值为______。
A:1 B:2 C:3 D:4答案:B难度:1知识点:单选题/第四章第4 章选择题2 吕橙5、设ch是char型变量,其值为A,且有下面的表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch 上面表达式的值是______。
A:A B:a C:Z D:z答案:B难度:1知识点:单选题/第四章6、下面程序的输出是______。
A:-1 B:0 C:1 D:不确定的值答案:A难度:1知识点:读程序选结果/第四章7、表达式:10!=9的值是______。
A:true B:非零值C:0 D:1答案:D难度:1知识点:单选题/第四章8、有如下程序《C 语言程序设计》题库吕橙3该程序的输出结果是______。
c语言第四章练习题答案

c语言第四章练习题答案习题四4.5编程判断输入整数的正负性和奇偶性。
流程图如图4-1。
#includemain(){int m;scanf("%d", &m); /*输入一个整数*/if (m >= 0) /*是否为正数*/{if (m%2 == 0) /*是正数,且能被2整除,是正偶数*/{printf("%d is a positive even\n", m);}else /*不能被2整除,是正奇数*/{printf("%d is a positive odd\n", m);}}/*if(m>=0)结束*/else{if (m % 2 == 0){printf("%d is a negative even\n", m); /*是负偶数*/}else{printf("%d is a negative odd\n", m); /*是负奇数*/}} }程序运行结果如下:第一次运行:6↙6 is a positive even第二次运行:-7↙6 is a negative odd4.6编程计算分段函数:1x x e y e -??=??-?000x x x >=<,输入x ,打印出y 值。
流程图如图4-2。
#include#includemain(){int x;double y;scanf("%d", &x); /* 输入一个整数*/if (x > 0){y = exp(-x); /*如果大于0,计算y=exp(-x)的值 */else if (x == 0){y = 1; /*x=0,则y=1*/}else{y = -exp(x); /*x<0,则y=-exp(x)*/` }printf("y=%f\n", y);}程序运行结果如下:第一次运行:4↙y=0.018316第二次运行:0↙y=1.000000第三次运行:-4↙y=-0.0183164.7输入三角形的三条边a,b,c ,判断它们能否构成三角形,若能则指出是何种三角形:等腰三角形、直角三角形、一般三角形。
c语言学习知识地4章课后题

一、第四章p56-58页的习题4.1—4.3。
4-1(1)分析并写出下列程序运行结果#include <stdio.h>main(){char c1='a',c2='b',c3='c'; /*定义三个字符*/printf("a%cb%cc%c\n",c1,c2,c3); /*格式化输出三个字符*/}结果:(2)#include <stdio.h>main(){int a=12,b=15;printf("a=%d%%,b=%d%%\n",a,b); /*格式化输出a=12%,b=15%*/}结果:(3)假设程序输入123456#include <stdio.h>main(){int a,b;scanf("%2d%*2s%2d",&a,&b); /*对输入的数取前两位赋给a,跳过长度为2 的字符串,再取两位数赋给b*/printf("%d,%d\n",a,b);}结果:4-2分析下面程序,请指出错误原因和程序错在哪里,并改正错误改正后:#include <stdio.h>main(){long a,b;float x,y;scanf("%ld,%ld",&a,&b);getchar();scanf("%5f,%5f",&x,&y);printf("a=%ld,b=%ld\n",a,b);printf("x=%f,y=%f\n",x,y);}错误分析:1、定义long 型,输入时要写成%ld ,输入时不能加入\n ,取址符号& 丢掉,scanf 函数中不.n,规定精度2、输出a,b对应为long型,输出格式符为%ld ,x,y对应为float型,输出格式为%f,%f3、在两个scanf() 函数中,输入4个数时,会在两个整数和两个浮点型数之间加入逗号,但加入逗号后,第二条scanf() 语句会认为逗号也为有效输入项,后面的浮点型数就不会被读入,所以要加入getchar() 函数将逗号吸收掉。
《C语言程序设计》第4章习题答案

1、选择题(1)C(2)D(3)B(4)D(5)C(6)B(7)B(8)C(9)A(10)C(11)C(12)B 2、填空题(1)①int men[10] ;②float step[4]={1.9,-2.33,0,20.6};③_int grid[4][10] ;(2)①int m[10]={9,4,7,49,32,-5};②0 9③scanf("%d",m[1]);④m[0] =39;⑤m[0] =a[3]+a[5];(3)①3 ②5 ③8 ④8 ⑤9 ⑥12 ⑦9(4)①int a[10]={9,4,12,8,2,10,7,5,1,3}; ②0 9 ③8 8(5)103、程序填空题(1)array[20]20&array[i ]20max=array[i];min=array[i];sum+array[i];sum/20(2)-5.77000021(3)ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI4、程序设计题(1)#define SIZE 100#include<stdio.h>void main(){int a[SIZE+1],i,j;for(i=2;i<=100;i++)a[i]=i;for(i=2;i<=100;i++)for(j=i+1;j<=100;j++)if(a[i]!=0&&a[j]%a[i]==0)a[j]=0;printf("\n");j=0;for(i=2;i<=100;i++){if(a[i]!=0){printf("%-4d",a[i]);j++;}if(j==10){j=0;printf("\n");}}}(2)#define S 14#include"stdio.h"void main(){int a[S][S],i,j,n;printf("please enter n:");scanf("%d",&n);for(i=1;i<=n;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<=n;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=i;j++)printf(" %3d",a[i][j]);printf("\n");}}(3)#define SIZE 80#include<stdio.h>void main(){char str1[SIZE+SIZE],str2[SIZE];int i,j;puts("Please enter 2 string:");scanf("%s",str1);scanf("%s",str2);i=0;while(str1[i]!='\0')i++;j=0;while(str2[j]!='\0'){str1[i]=str2[j];i++;j++;}str1[i]='\0';printf("%s\n",str1);}(4)#define SIZE 80#include<stdio.h>#include<string.h>void main(){char string[SIZE];int len,i,j,flag;long number;puts("Please enter a digital string:");scanf("%s",string);len=strlen(string);if(string[0]=='-'){flag=-1;i=1;}else{flag=1;i=0;}number=string[i]-'0';for(i++;i<len;i++)number=number*10+(string[i]-'0');number=flag*number;printf("%d\n",number);}(5)#define SIZE 40#include<stdio.h>void main(){int m,n,i,j;float price[SIZE],sum;printf("\nPlease input M and N:");scanf("%d%d",&m,&n);m=m-n;printf("Please input %d price :",n);sum=0;for(i=0;i<n;i++){scanf("%f",&price[i]);sum=sum+price[i];}printf("Aver are %10.2f.",sum/n);while(m>0){for(i=0;i<n-1;i++)price[i]=price[i+1];printf("\nPlease input one price:"); scanf("%f",&price[n-1]);m--;sum=0;for(i=0;i<n;i++){sum=sum+price[i];}printf("Aber are %10.2f",sum/n);}}。
C语言第四章编程练习题

第四章课后编程练习题(一)数组一维数组:1、一个由10个元素组成的一维数组,求该数组的最大值、最小值、总和和平均值并输出。
2、一个由10个元素组成的一维数组,编程将逆序数组输出。
Cpp5——4023、已有一个已排好序的数组,现在输入一个数,要求按原来排序的规律将它插入到数组中。
输入输出示例:输入n:5按照由大到小的顺序输入n个数:9 7 5 3 1输入要插入的数:6插入完以后数组变成:9 7 6 5 3 1 cpp5——4034、输入若干个正整数,以0结束,将其中大于平均值且个位为5的数排序后输出(按由大到小的顺序排序)。
测试数据:输入:35 15 3 10 5 25 1 0输出:35 25 15 cpp5——4045、用数组输出Fibonacci数列的前40项二维数组1、读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。
2、输入一个正整数n,输入n个数,生成一个n*n的矩阵,矩阵中第1行是输入的n个数,以后每一行都是上一行循环左移一个元素。
输入输出示例Input n: 3Input numbers: 2 5 8 4 9The matrix is:2 5 8 4 95 8 4 9 28 4 9 2 54 9 25 89 2 5 8 4 cpp5——4053、输出可大可小的正方形图案,最外层是第一层,要求每层上用的数字与层数相同。
输入输出示例Input n: 3The matrix is:1 1 1 1 11 2 2 2 11 2 3 2 11 2 2 2 11 1 1 1 14、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。
Cpp5——4065、编程输出杨辉三角(要求输出10行)111 2 11 3 3 11 4 6 4 1。
字符数组1、输入一串字符,将其中ASCII码值为奇数的字符排序后输出(按由小到大的顺序)。
C语言第四章习题及答案(课余练习-不用提交)

第四章习题答案一、选择题1)以下是if语句的基本形式:if(表达式) 语句其中"表达式"A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式2)以下选项中,值为1的表达式是()。
A)1-'0' B)1-'\0' C)'1'-0 D)'\0'-'0'3)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:A)1 B)0 C)2 D)不知道a的值,不能确定4)若变量已正确定义,在if (W)printf(“%d\n”,k);中,以下不可替代W的是A)a<>b+c B)ch=getchar()C)a==b+c D)a++5)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是A)if(x++); B)if(x>y&&y!=0);C)if(x>y) x- - D)if(y<0) {;}else y++; else x++;6) 以下选项中,当x为大于1的奇数时,值为0的表达式A)x%2==1 B)x%2 C)x%2!=0 D)x%2==07) 设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0)C)(EXP= =1)D)(EXP!=1)8) 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E=0) B) (E>0||E<0) C) (E==0) D) (E!=0)9)若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)10) 若有表达式(w)?(--x):(++y),则其中与w等价的表达式是 ( )A)w==1 B) w==0 C) w! =1 D) w! =011) 设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b){c=a;a=b;b=c;}12) 已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z')C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)isalpha(c) 判断参数c是否为英文字母头文件:ctype.hisupper(c) 判断参数c是否为大写英文字母是返回非零值,否则返回零islower(c ) 检查参数c是否为小写英文字母13)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’D)c<=(‘z’-32)&&(‘a’-32)<=c14) 当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c==2)‖(c==4)‖(c==6) B)(c>=2&&c<=6)‖(c!=3)‖(c!=5)C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1)15) 若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 16)有以下程序#includemain(){int a=1,b=0;if(!a) b++;else if(a==0) if(a) b+=2;else b+=3;printf("%d\n",b); }程序运行后的输出结果是A)0 B)1 C)2 D)317)在嵌套使用if语句时,C语言规定else总是()。
c语言第4章 选择结构练习题

elsey=-1;
D.if(x>=0)
if(x>0)y=1;
elsey=0;
elsey=-1;
15.执行以下语句后,y的值为()。
intx,y,z;
x=y=z=0;
++x||++y&&++z;
A.0
B.1
C.2
16.已知 inta=1,b=2,c=3;以下语句执行后 a,b,c的值是()。
if(a>b)
A.’x’&&’y’
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
4.为了避免嵌套的 if-else语句的二义性,C语言规定 else总是与()组成配对关系。
A.缩排位置相同的 if
B.在其之前未配对的 if
C.在其之前未配对的最近的 if
D.同一行上的 if
5. 逻辑运算符两侧运算对象的数据类型()。
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
7. 下列运算符中优先级最高的是()。
A.<
B.&&
C.+
D.!=
8. 选择出合法的 if语句(设 intx,a,b,c;)()。
A.if(a=b)c++;
B.if(a=<b)c++;
C.if(a<>b)c++;
D.if(a=>b)c++;
9. 能正确表示“当 x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是()。
C语言程序设计教程第四章练习题解析

12、C语言程序得基本单位就是( )、
A.程序行
B、语句
C、函数
D、字符
答案:C
解析:函数就是C语言程序得基本单位
13、C语言中决定函数返回值得类型得就是()、
A、return语句中得表达式类型
B、调用函数得主调函数类型
C。调用函数时临时
intd=1;
intfun(intp)
{
staticintd=5;
d+=p;
printf("%d ",d);
return d;
}
voidmain()
{
ﻩint a=3;
ﻩprintf("%d \n",fun(a+fun(d)));
}
A.699
B、66 9
C、61515
D、6 615
答案:C
解析:首先调用fun(d),将全局变量d=1带入,此时fun()函数内得静态局部变量d得值就是1,d+=p后d得值就是6,输出d得值,返回d得值;
A、当调用时,会调用内部函数
B、当调用时,会调用外部函数
C.当调用时,会调用两次,先调用内部函数再调用外部函数
D、都不调用,会报错
答案:A
解析:当内部函数与外部函数重名时,会优先调用内部函数
6、在C语言中,声明外部函数需要添加得关键字就是()
A、extern
B、static
C、this
D.auto
答案:A
{
ﻩintd=5;
ﻩd+=p++;
ﻩprintf(”%d”,d);
}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)数组 一维数组:
1、一个由 10 个元素组成的一维数组,求该数组的最大值、最小值、总和和平均值并输出。 2、一个由 10 个元素组成的一维数组,编程将逆序数组输出。 Cpp5——402 3、已有一个已排好序的数组,现在输入一个数,要求按原来排序的规律将它插入到数组中。 输入输出示例: 输入 n:5 按照由大到小的顺序输入 n 个数:9 7 5 3 1 输入要插入的数:6 插入完以后数组变成:9 7 6 5 3 1 cpp5——403 4、输入若干个正整数,以 0 结束,将其中大于平均值且个位为 5 的数排序后输出(按由大到小的顺序排 序) 。 测试数据: 输入:35 15 3 10 5 25 1 0 输出:35 25 15 cpp5——404 5、用数组输出 Fib 。 。 。 。 。 。 。 。 。
1 4
1
字符数组
1、输入一串字符,将其中 ASCII 码值为奇数的字符排序后输出(按由小到大的顺序) 。 测试数据: 输入:china 输出:aci cpp5——407 2、输入一个以回车结束的字符串(少于 80 个字符) ,滤去所有的非十六进制字符后,组成一个新字符串 (十六进制形式) ,然后将其转换为十进制数后输出。 3、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。 Cpp5——408 4、有一行电文,按照下列规律译成密码: AZ az BY by CX cx …… 非字母不变。 5、编写程序,将两个字符串连接起来,不用 strcat 函数。 6、编写程序实现 strcpy 函数功能。 7、编程实现 strcmp 函数功能。 8、编程实现 strlen 函数功能。
二维数组
1、读入一个正整数 n(1<=n<=6) ,再读入 n 阶矩阵,计算该矩阵除副对角线、最后一列和最后一行以外 的所有元素之和(副对角线为从矩阵的右上角至左下角的连线) 。 2、输入一个正整数 n,输入 n 个数,生成一个 n*n 的矩阵,矩阵中第 1 行是输入的 n 个数,以后每一行 都是上一行循环左移一个元素。 输入输出示例 Input n: 3 Input numbers: 2 5 8 4 9 The matrix is: 25849 58492 84925 49258 92584 cpp5——405 3、输出可大可小的正方形图案,最外层是第一层,要求每层上用的数字与层数相同。 输入输出示例 Input n: 3 The matrix is: 11111 12221 12321 12221 11111 4、将一个二维数组(3 行 4 列)的行和列互换(转置) ,存到另一个二维数组(4 行 3 列)中并输出。 Cpp5 ——406 5、编程输出杨辉三角(要求输出 10 行) 1 1 1 2 1