c语言程序设计题目张日
C语言程序设计(第二版)习题参考题答案
word完美格式C语言程序设计习题参考答案习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。
2.二进制是由0和1两个数字组成的进制方式。
3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。
4.在整数的二进制表示方法中,0的原码、反码都有两种形式。
5.有符号数有三种表示法:原码、反码和补码。
6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。
解:1.F 2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。
A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。
A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的表示方法准确地描述是。
A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。
A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是()。
A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。
A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。
A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。
C语言程序设计作业2答案.doc
<C语言程序设计>第2次作业答案一、单项选择题答案1B 2B 3D 4C 5B 6B 7D 8D 9B 10C11C 12B 13A 14C 15B 16B 17D 18A 19D 20B一.单项选择题1.若有以下定义:int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a;则值为5的表达式是()。
A)p+=5, *(p+1) B)p+=1, * ++p C)p+=4, *p++ D)p+=1, ++ *p 2.下面函数调用语句含有实参的个数为()fun( ( a, b, c, d ), ( m, n ), (f, g ) );A)1 B)3 C)4 D)23.函数形式正确的是()。
A) double myfun( int x, int y) B) int myfun( int x, y){ m=x+y; return m; } { int m; }C) int myfun( int x, int y) D) int myfun( int x, int y){ int x, y; double m; { int m; m=x+y; return m; } m=x+y; return m; }4.不正确的字符串赋值或赋初值方式是()。
A)char *str; str=”string”; B)char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’}C) char str[10]; str=”string”;D)char str[]=”string”; str2[]=””; strcpy(str2, str1);5.以下程序的输出结果是()。
#include <stdio.h>main(){ char str[]="SSSWLIA", c;int k;for (k=2; (c=str[k])!='\0'; k++) {switch (c) {case 'I': ++k; break;case 'L': continue;default: putchar(c); continue;}}putchar('*');}A)SSW* B)SW* C)SW*A D)SW6.以下程序的输出结果是()。
C语言课程设计题目汇总
目录杨顺民题目 (2)题目1:年历显示 (3)题目2:小学生测验 (3)题目3 运动会比赛计分系统 (3)题目4:学生学籍管理系统(限2人) (3)题目5:排班系统 (4)题目6:通讯录程序设计(限2人) (4)题目8:机房收费管理系统(限2人) (5)题目9:班级成绩管理系统(限2人) (5)题目10:机房机位预定系统(限2人) (5)题目11:班级档案管理系统(限2人) (5)题目12:职工工资管理系统 (限2人) (6)题目13:工资纳税系统 (6)题目14:歌手比赛系统 (7)题目15:用英文单词模拟数学计算 (7)题目16:C语言关键字中英翻译机 (7)题目17:用C语言设计一个简单的计算器,要求能够对输入的数 (7)题目18:计算24游戏 (7)题目19:输入盘子数 (7)题目20:多项式加法的实现 (7)题目21:实现带有括号的四则运算 (8)题目22:线性方程组求解 (8)题目23:大整数的四则运算 (8)题目24:三角形计算 (8)题目25:四边形计算 (8)题目26:设计一个模拟时间条的程序 (8)题目27:文件加密 (9)题目28:猜数游戏(掌握程序结构及随机函数应用) (9)题目29:字符串处理函数 (9)题目30:进制转换 (9)题目31:判断一个数就是否就是数组中的成员(用二分法查找) (9)题目32:位数大小排序(掌握数值排序算法) (9)题目33:请编写函数fun (9)题目34:矩阵乘法(数值求解算法) (9)题目35:求所有不超过200的N值 (9)题目36:插入后自动排序(掌握用穷举法进行比较、交换) (9)题目37:用梯形法求定积分(数值求解算法) (10)题目38:一个奇异的三位数(穷举算法) (10)题目39:回文数的形成 (10)题目40:人机猜数游戏 (10)题目41:条件编译 (10)题目42:输出九九乘法口诀 (10)输出九九乘法口决表(循环结构的应用,表的格式自己设定) (10)题目43:设计函数 (10)题目44:统计符号 (10)尹四清题目 (11)李玉蓉题目 (24)题目2:排班系统 (24)题目3:个人小管家 (25)题目4:个人图书管理系统 (25)题目5:数组元素的插入与逆置 (25)题目要求: (26)把一个整数插入到按由小到大排列的数组中,插入后仍然保持由小到大的顺序排列,并将得到的数组逆置成由大到小排序。
C语言程序设计课后习题答案
#include <stdio.h>
voidmain()
{
char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf(“密码是%c%c%c%c%c\n”,c1,c2,用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?
(1)变量c1、c2应定义为字符型或整形?或二者皆可?
(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:
charc1,c2;与intc1,c2;是否无条件地等价?
解:
#include<stdio.h>
解:
#include<stdio.h>
voidmain()
{
float score;
char grade;
printf(“请输入学生成绩:”);
scanf(“%f”,&score);
while(score>100||score<0)
{ printf(“\n输入有误,请重新输入:”);
scanf(“%f”,&score);
thousand=num/1000%10;
hundred=num/100%10;
ten=num%100/10;
indiv=num%10;
switch(place)
{ case 5: printf(“%d,%d,%d,%d,%d”,ten_thousand,thousand,hundred,ten,indiv);
c语言程序设计模拟试题
c语言程序设计模拟试题一、单项选择题(每题2分,共20分)1. 下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef2. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()3. 若有以下代码段:```cint a = 10;printf("%d", ++a);```输出结果是什么?A. 9B. 10C. 11D. 124. 在C语言中,以下哪个是合法的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array = {1, 2, 3, 4, 5};D. int array[5] = {1, 2, 3};5. 下列关于指针的描述中,哪个是错误的?A. 指针可以指向任何类型的数据。
B. 指针变量的值是它所指向的变量的地址。
C. 指针可以被重新赋值为其他变量的地址。
D. 指针不能被初始化为NULL。
6. 在C语言中,哪个运算符用于计算两个整数的差?A. +=B. -C. *D. /7. 下列哪个函数用于将浮点数转换为字符串?A. sprintf()B. scanf()C. printf()D. strcat()8. 在C语言中,哪个关键字用于声明一个无限循环?A. whileB. forC. do-whileD. switch9. 下列哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$210. 在C语言中,哪个函数用于打开一个文件?A. fopen()B. fclose()C. remove()D. rename()二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个函数的关键字是________。
Cc语言程序设计张树粹清华大学习题解答
第1 章习题答案二、单项选择题1.A2.A3. C4.B5.A6.B7.B8. A三、填空题1. .C .CPP .OBJ .EXE2. 主3. #include<iostream >, using namespace std, #include<stdio.h>4. 顺序结构,选择结构,循环结构5.{, }, 函数说明, 函数执行,不能省略,void第2章习题答案一、单项选择题1.B2.B3.A4.C5. C6. A7.B8.C9. D 10. D11. B 12.A 13. B 14.C 15. D二、填空题1. x>20&&X<30||X<-1002. x>y或a>b3. 14. auto 、register 、static 与extern5. 函数体内.6. int float double7. 2 18. . 是最右边表达式的值9. 710. 先使用后自增,先自增后使用11.右结合12.变量的数据类型、变量的存储类型、变量名13.是否整除14.此之外全局变量,静态局部变量15.count三、写出程序运行结果1、2,12、6,8,6,73、n=14、15、n=-46、x=3,a=2,b=37、08、i=6,d=129、2147483647,-2147364810、x=3,y=5第3章习题答案一、单项选择题1.D2.B3.B4.C5.D6.D7.B8.B9.C 10.A二、写出程序运行结果1. 1202. s=633. 01234the loop break out.4. freight= 58800005. sum=1sum=3sum=9sum=33三、程序填空1. i++ i<=102. i<100 i%3!=03. x!=-1 x<min4. i++,2*i-1 \n5. i=1 j<=i i*j四、编程题1.void main(){char ch1;ch1=getchar();if(ch1>'0'&&ch1<'9')printf("这是一个阿拉伯数字,朋友再见!\n"); elseprintf("这不是一个阿拉伯数字,朋友再见!\n");2.main(){int x,y;scanf("%d",&x);if(x<0)y=x;elseif(x>=10)y=3*x-11;elsey=2*x-1;printf("\nx=%d,y=%d\n",x,y);3.main( ) {char grade;grade=getchar();switch(grade){ case 'A': printf(">=90"); break;case 'B': printf("80~89"); break;case 'C': printf("70~79");break;case 'D': printf("60~69"); break;case 'E': printf("0~59");4.void main(){char ch1;ch1=getchar();if(ch1>'a'&&ch1<'z')printf("这是一个英文大写字符,朋友再见!\n"); else if(ch1>'A'&&ch1<'Z')printf("这是一个英文小写字符,朋友再见!\n");5.void main(){int n,a,b,c;for(n=100;n<=999;n++){a=n/100;b=(n-a*100)/10;c=n%10;if(n==a*a*a+b*b*b+c*c*c)printf("%d,",n);6. main()int a,b,c,d,t;scanf("%d,%d,%d,%d",&a,&b,&c,&d);printf("\na=%d,b=%d,c=%d,d=%d\n",a,b,c,d); if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d,%d,%d,%d",a,b,c,d);7. #include <math.h>main(){float e=1.0,t=1,n=1;while(fabs(1/t)>1e-6) {e=e+1/t; n=n+1; t=t*n; }printf("e=%f\n",e);8. main(){int i,j;for(i=1;i<=4;i++) {for(j=1;j<=i+30;j++) printf(" "); //定打印*的位置,打在屏幕中央,从第31列开始printf("*");for(j=1;j<=2*(4-i);j++)printf(" "); //两个*间的空位数printf("*");printf("\n");9. main(){ int i,a,b,c,n=0;for(i=100;i<=999;i++){a=i%100;c=i%10;b=i-a*100-c;if(i%11==0&&(a==b||b==c||c==a)){ printf("%d ",i); n+=1;10. main(){int d=0,a=2;float m,s=0;do{a=2*a;m=0.8*a;s=s+m;d++;}while(a<=100);printf("%f\n",s/d);第4习题答案一、A.D.A.B.A.D.B.B.B。
《C语言程序设计》形成性考核作业(2)
《C语言程序设计》形成性考核作业(2)《C语言程序设计》作业2一、选择题1. 在下面的一维数组定义中,( )语句有语法错误。
A. int a[ ]={1,2,3};B. int a[10]={0};C. int a[ ];D. int a[5];2. 在下面的二维数组定义中,( )语句是正确的。
A. int a[5][ ];B. int a[ ][5];C. int a[ ][3]={{1,3,5},{2}};D. int a[ ](10);3. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( )。
A. 2B. 4C. 6D. 84. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
A. 0B. 4C. 8D. 65. 将两个字符串连接起来组成一个字符串时,选用( )函数。
A. strlen( )B. strcap( )C. strcat( )D. strcmp( )二、填空题1. 假定一维数组的定义为“char * a[8];”,则该数组所含元素的个数为。
2. 假定一维数组的定义为“char * a[8];”,则该数组所占存储空间的字节数为。
3. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为。
4. 假定二维数组的定义为“double a[M][N];”,则该数组所含元素的个数为。
5. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在之间。
6. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在之间。
7. 使用“typedef char BB[10][50];”语句定义为含有10行50列的二维字符数组类型。
8. 存储字符'a'需要占用存储器的个字节空间。
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案
C语言程序设计(张淑华、朱丽莉主编)课后习题解答(仅供参考)习题一一、选择题1.B 2.D 3.B 4.A 5.B6.C 7.C二、填空题1..obj 2.函数3./* */ 4.#include <stdio.h> int a,b; a,b三、简答题(略)习题二一、选择题1.B 2.B 3.A 4.D 5.A6.C 7.C 8.A 9.C 10.B11.A 12.A 13.C 14.A 15.C二、填空题1.变量2.存储数据的单元3.非0、0 4.(1)a>=0 (2)0 5.1 6.1 7.-30 8.38 9.4 , 7 10.-6 177772 11.9.9 12.7三、写出下列程序的运行结果1.0,0,5 2.18 3.64 512 8 4.55.d4,c四、编程题1.#include <stdio.h>#define PI 3.1415926void main(){ float r,s;printf(“Please input circinal radii\n”);scanf(“%f”,&r);s=PI*r*r;printf(“r=%.2f,s=%.2f\n”,r,s);}2.#include <stdio.h>void main(){ char c1,c2;printf(“Please input a majuscule\n”);scanf(“%c”,&c1);c2=c1>’A’&&c1<’Z’?c1+32:c1;printf(“%c\n”,c2);}3.#include <stdio.h>void main(){ int a=0,b;scanf(“%c”,&b);b=b&a;printf(“b=%d\n”,b);}习题三一、选择题1.C 2.C 3.A 4.C 5.D6.原题第2行应为c=(c-=a-5),(a=b,b+3); 答案为B 否则输出结果为5,0,57.D 8.C 9.A 10.B二、填空题1.-50 300、a=-50,b=300a=-50 b=3002.10 20 30、10,20,30、a=10,b=20,c=303.15、0、0三、写出下列程序的运行结果1.a=789.654321,a= 789.65,a= 789.65432100,a=789.6543212.b=15,b=17,b=f 3.c=1,x=0,y=0,z=1 4.2120,205.在TC环境下为216,125 在VC环境下为216,1806.a=A,b=d,c=F7.9,4,12,12 8.x=4.500000,y=4,x+y=8.500000四、编程题1.#include <stdio.h>void main(){ printf("**********************************\n");printf(" HAPPY NEW YEAR! \n");printf("**********************************\n");}2.(1) #include <stdio.h>void main(){ int a=5,b=8,c=10,m,max;m= a>b?a:b;max=c>m?c:m;printf(“max=%d\n”,max);}(2)#include <stdio.h>void main(){ int a,b,c,m,max;scanf("%d,%d,%d",&a,&b,&c);max=a>b?a:(b>c?b:c);printf(“max=%d\n”,max);}习题四一、选择题1.D 2.D 3.C 4.A 5.D 6.A 7.C 8.C 9.D 10.B二、填空题1.6、5、5 2.(a%3==0||a%7==0) 3.(1) a>b (2) a=c; (3) a,b,c三、写出下列程序的运行结果1.4 2.64 3.a=7,b=4 4.46 46 5.*#46四、编程题1.另见填空题3#include <stdio.h>void main(){ float a,b,c,t;scanf("%f,%f,%f",&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(“%.2f,%.2f,%.2f\n”,a,b,c);}2.#include <stdio.h>void main(){ int a,b;scanf("%d,%d",&a,&b);if(a%b==0)printf(“%d is divisible by %d\n”,a,b);elseprintf(“%d is not divisible by %d\n”,a,b);}3.(1) #include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if (x>-5&&x<0)y=x;printf("y=%d\n",y);else if (x==0)y=x-1;printf("y=%d\n",y);else if(x>0&&x<10)y=x+1;printf("y=%d\n",y);elseprintf("Data out of range\n");}(2) #include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);switch(x){ case -1:case -2:case -3:case -4:y=x; printf("y=%d\n",y);break;case 0:y=x-1; printf("y=%d\n",y);break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:y=x+1; printf("y=%d\n",y);break;default: printf("Data out of range\n");}4.#include <stdio.h>void main(){long num;int indiv,ten,hundred,thousand,tenthousand,place; /*分别代表个位、十位、百位、千位、万位和位数*/printf(“Please Input a integer(0~99999):”);scanf(“%ld”,&num);if (num>9999)place=5;else if (num>999)place=4;else if (num>99)place=3;else if (num>9)place=2;elseplace=1;printf(“place=%d\n”,place);printf(“For each digit:”);tenthousand=num/10000;thousand=(int)(num-tenthousand*10000)/1000;hundred=(int)(num-tenthousand*10000-thousand*1000)/100;ten=(int)(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-tenthousand*10000-thousand*1000-hundred*100-ten*10);switch(place){case 1:printf(“%d”,indiv);break;case 2:printf(“%d,%d”,ten,indiv);break;case 3:printf(“%d,%d,%d”,hundred,ten,indiv);break;case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv);break;case 5:printf(“%d,%d,%d,%d,%d”,tenthousand,thousand,hundred,ten,indiv);}}习题五一、选择题1.D 2.C 3.D 4.B 5.C6.B 7.C 8.B 9.B 10.B二、填空题1.(1) x>=0 或!(x<0) (2) x<amin2.(1) i<10 或i<=9 (2)j%3 或j%3!=03.(1) pi (2) fabs(t) (3)4三、写出下列程序的运行结果1.1 2.y=-1 3.4 4.a=2,b=8 5.*7 6.45 7.1 8.s=03423四、编程题1.#include <stdio.h>void main(){int i,j,k;for (i=1;i<=4;i++) /*输出上面4行*号*/{ for (j=1;j<=5-i;j++)printf(““); /*输出*号前面的空格*/for (k=1;k<=2*i-1;k++)printf(“*”); /*输出*号*/printf(“\n”); /*输出完一行*号后换行*/}}2.#include "stdio.h"void main(){ int num,n1,n2,p=1;scanf("%d",&num);while (num){ n1=num/10;n2=num%10;p*=n2;num=n1;}printf("num=%d,p=%d\n",num,p);}3.#include "stdio.h"void main(){ int i;float s1,s2,s3,s4,s5,sum,avg;for(i=1;i<=6;i++){ printf("Please enter a five subjects score\n");scanf("%f,%f,%f,%f,%f",&s1,&s2,&s3,&s4,&s5);sum=0;sum+=s1+s2+s3+s4+s5;avg=sum/5;printf("%d individuals,the average score is %.2f\n",i,avg);}}习题六一、选择题1.D 2.C 3.D 4.D 5.B6.A 7.C 8.D 9.A二、填空题1.地址常量2.非0 3.3.(1) j=9 (2) j>=0 4.(1) 0 (2) 6 5.(1) gets(temp); (2) strcpy(temp,str); 6.(1) i<3 (2) a[i][i] 7.(1) &a[i] (2) i%4==0 (3)printf("\n:\");8.(1) s[i]>=48 && s[i]<=57 或s[i]>='0' && s[i]<='9' (2) d[j]=0; 或d[j]='\0';三、写出下列程序的运行结果1.13715 2.s=15 3.58 4.11 5.7 0 6.how 7.max=9,row=1,col=0 8.6,4,3,2, are you? I am fine四、编程题1.#include <stdio.h>#define N 10void main(){ int a[32],x,k,r,i;printf(“Please input an integer:\");k=-1;do{ r=x%2;a[++k]=r;x/=2;}while(x>=1);for(i=k;i>=0;i--)printf(“%1d”,a[i]);printf(“\n”);}2.#include <stdio.h>#define N 10void main(){ int a[N+1]={10,20,30,40,50,60,70,80,90,100};int t1,t2,num,i,j;printf(“array a:\n”);for (i=0;i<N;i++)printf(“%d”,a[i]);printf(“\n”);printf(“Insert data:”);scanf(“%d”,&num);if (num>a[N-1])a[N]=num;else{ for (i=0;i<N;i++){ if (a[i]>num){ t1=a[i];a[i]=num;for (j=i+1;j<N+1;j++){ t2=a[j];a[j]=t1;t1=t2;}break;}}}printf("Current array a:\n”);for (i=0;i<N+1;i++)printf(“%5d\n”,a[i]);}3.#include <stdio.h>#define N 6void main(){ int i,j,a[N][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-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for (i=1;i<N;i++){ for (j=1;j<=i;j++)printf(“%5d ”,a[i][j]);printf(”\n”);}}4.#include "stdio.h"void main(){ char s[80],t[80],d;int i,j;printf("Please enter a string:\n");gets(s);printf("delete?\n");d=getchar();for(i=j=0;s[i]!='\0';i++)if(s[i]!=d){ t[j]=s[i];j++;}t[j]='\0';printf("%s\n",t);}5.#include "stdio.h"#define N 8void main(){ int s[N][3],i,j,k,m,t1;float a[N],sum,t2;for(i=0;i<N;i++){ printf("Please enter the %d-th three subjects score\n",i);sum=0;for(j=0;j<3;j++){ scanf("%d",&s[i][j]);sum+=s[i][j];}a[i]=sum/3;}for(i=0;i<N-1;i++){ k=i;for(j=i+1;j<N;j++)if(a[k]<a[j]) k=j;if(k!=i){ for(m=0;m<3;m++){ t1=s[i][m];s[i][m]=s[k][m];s[k][m]=t1;} /*交换整行的值*/t2=a[i];a[i]=a[k];a[k]=t2;}}for(i=0;i<N;i++){ printf("%d-th ",i);for(j=0;j<N;j++)printf("%d ",s[i][j]);printf("%.2f\n",a[i]);}}习题七一、选择题1.C 2.A 3.B 4.B 5.A 6.D 7.C 8.D 9.C 10.C二、填空题1.struct STRU t[20]; 2.x.x、x.y、x.z.y、x.z.z3.4,8 三、写出下列程序的运行结果1.6 2.0 3.4E5S 4.21 5.Zhao,m,85,90 四、编程题1.#include "stdio.h"#define N 45struct student{ char name[20];char sex[7];int age;int score;}std[N];void main(){ int i,max=0,rowi;for(i=0;i<N;i++){ printf("Please enter the data of the %d-th student:\n",i);printf("name:");scanf("%s",std[i].name);printf("sex:");scanf("%s",std[i].sex);printf("age:");scanf("%d",&std[i].age);printf("score:");scanf("%d",&std[i].score);if(max<std[i].score){ max=std[i].score;rowi=i;}}printf("name:%s ",std[rowi].name);printf("sex:%s ",std[rowi].sex);printf("age:%d ",std[rowi].age);printf("score:%d\n",std[rowi].score);}2.#include "stdio.h"#define N 5struct student{ char name[20];char sex[7];int score;}std[N];void main(){ int i,ml=0,fml=0;float sum=0,avg;for(i=0;i<N;i++){ printf("Please enter the data of the %d-th student:\n",i);printf("name:");scanf("%s",std[i].name);printf("sex:");scanf("%s",std[i].sex);if(std[i].sex[0]=='m'||std[i].sex[0]=='M')ml+=1;elsefml+=1;printf("score:");scanf("%d",&std[i].score);sum+=std[i].score;}avg=sum/N;printf("The number of male students:%d\n",ml);printf("The number of female students are:%d\n",fml);printf("The average scores are:%.2f\n",avg);}习题八一、选择题1.A 2.C 3.D 4.A 5.C6.A 7.D二、填空题1.(1) high=mid-1 (2) low=mid+1 2.(1) int m (2) m%i==0 (3) return s 3.(1) max=x[i][j] (2) max三、写出下列程序的运行结果1.625 2.Qian,p,95,92 3.2 4.12 5.h=8四、编程题1.#include "stdio.h"void main(){ int prime(int);int x;printf("\nPlease input an integer:");scanf("%d",&x);if(prime(x))printf("\n%d is prime.\n",x);elseprintf("\n%d is not prime.\n",x);}int prime(int n){ int flag=1,i;for(i=2;i<=n-1 && flag==1;i++)if(n%i==0)flag=0;return(flag);}2.#include "stdio.h"void delask(char a[]){ int i,j;char b[80];for(i=j=0;a[i]!='\0';i++)if(a[i]!='*'){ while(a[i]!='\0'){ b[j]=a[i];j++;i++;}break;}b[j]='\0';for(i=0;b[i]!='\0';i++)a[i]=b[i];a[i]='\0';}void main(){ char s[80];printf("Please enter a string:\n");scanf("%s",s);delask(s);printf("%s\n",s);}3.#include "stdio.h"struct date{ int day;int month;int year;};int days(struct date dt){ int y,m,d,ds[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,s=0;y=dt.year;d=dt.day;if(y%4==0 && y%100!=0||y%400==0) ds[1]=29;/* 计算每月的天数是本年第几天*/ switch(m){ case 1:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 2:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 3:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 4:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 5:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 6:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 7:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 8:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 9:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 10:for(i=0;i<m-1;i++)s+=ds[i];break;case 11:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 12:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;}return (s);}void main(){ struct date ymd;int dys;printf("Input year month and day\n");scanf("%d,%d,%d",&ymd.year,&ymd.month,&ymd.day);dys=days(ymd);printf("Today is the first %d days in the middle of this year.\n",dys);}习题九一、选择题1.A 2.D 3.A 4.D 5.B 6.A 二、写出下列程序的运行结果1.10 2.9 11 11 3.*** 4.12 5.8 6.1 11 21 3三、编程题1.#include "stdio.h"#define N 10float fmax=0,fmin=0;float average(float fscore[],int n){ int i;float faver,fsum=fscore[0];fmax=fmin=fscore[0];for(i=1;i<n;i++){if(fscore[i]>fmax)fmax=fscore[i];else if(fscore[i]<fmin)fmin=fscore[i];fsum+=fscore[i];}faver=fsum/n;return (faver);}void main(){ float fave,fnumb[N];int i;for(i=0;i<N;i++)scanf("%f",&fnumb[i]);fave=average(fnumb,N);printf("max=%.2f min=%.2f average=%.2f\n",fmax,fmin, fave);}2.此题有误,用宏定义较难实现。
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案
C语言程序设计(张淑华、朱丽莉主编)课后习题解答(仅供参考)习题一一、选择题1.B 2.D 3.B 4.A 5.B6.C 7.C二、填空题1..obj 2.函数3./* */ 4.#include <stdio.h> int a,b; a,b三、简答题(略)习题二一、选择题1.B 2.B 3.A 4.D 5.A6.C 7.C 8.A 9.C 10.B11.A 12.A 13.C 14.A 15.C二、填空题1.变量2.存储数据的单元3.非0、0 4.(1)a>=0 (2)0 5.1 6.1 7.-30 8.38 9.4 , 7 10.-6 177772 11.9.9 12.7三、写出下列程序的运行结果1.0,0,5 2.18 3.64 512 8 4.55.d4,c四、编程题1.#include <stdio.h>#define PI 3.1415926void main(){ float r,s;printf(“Please input circinal radii\n”);scanf(“%f”,&r);s=PI*r*r;printf(“r=%.2f,s=%.2f\n”,r,s);}2.#include <stdio.h>void main(){ char c1,c2;printf(“Please input a majuscule\n”);scanf(“%c”,&c1);c2=c1>’A’&&c1<’Z’?c1+32:c1;printf(“%c\n”,c2);}3.#include <stdio.h>void main(){ int a=0,b;scanf(“%c”,&b);b=b&a;printf(“b=%d\n”,b);}习题三一、选择题1.C 2.C 3.A 4.C 5.D6.原题第2行应为c=(c-=a-5),(a=b,b+3); 答案为B 否则输出结果为5,0,57.D 8.C 9.A 10.B二、填空题1.-50 300、a=-50,b=300a=-50 b=3002.10 20 30、10,20,30、a=10,b=20,c=303.15、0、0三、写出下列程序的运行结果1.a=789.654321,a= 789.65,a= 789.65432100,a=789.6543212.b=15,b=17,b=f 3.c=1,x=0,y=0,z=1 4.2120,205.在TC环境下为216,125 在VC环境下为216,1806.a=A,b=d,c=F7.9,4,12,12 8.x=4.500000,y=4,x+y=8.500000四、编程题1.#include <stdio.h>void main(){ printf("**********************************\n");printf(" HAPPY NEW YEAR! \n");printf("**********************************\n");}2.(1) #include <stdio.h>void main(){ int a=5,b=8,c=10,m,max;m= a>b?a:b;max=c>m?c:m;printf(“max=%d\n”,max);}(2)#include <stdio.h>void main(){ int a,b,c,m,max;scanf("%d,%d,%d",&a,&b,&c);max=a>b?a:(b>c?b:c);printf(“max=%d\n”,max);}习题四一、选择题1.D 2.D 3.C 4.A 5.D 6.A 7.C 8.C 9.D 10.B二、填空题1.6、5、5 2.(a%3==0||a%7==0) 3.(1) a>b (2) a=c; (3) a,b,c三、写出下列程序的运行结果1.4 2.64 3.a=7,b=4 4.46 46 5.*#46四、编程题1.另见填空题3#include <stdio.h>void main(){ float a,b,c,t;scanf("%f,%f,%f",&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(“%.2f,%.2f,%.2f\n”,a,b,c);}2.#include <stdio.h>void main(){ int a,b;scanf("%d,%d",&a,&b);if(a%b==0)printf(“%d is divisible by %d\n”,a,b);elseprintf(“%d is not divisible by %d\n”,a,b);}3.(1) #include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if (x>-5&&x<0)y=x;printf("y=%d\n",y);else if (x==0)y=x-1;printf("y=%d\n",y);else if(x>0&&x<10)y=x+1;printf("y=%d\n",y);elseprintf("Data out of range\n");}(2) #include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);switch(x){ case -1:case -2:case -3:case -4:y=x; printf("y=%d\n",y);break;case 0:y=x-1; printf("y=%d\n",y);break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:y=x+1; printf("y=%d\n",y);break;default: printf("Data out of range\n");}4.#include <stdio.h>void main(){long num;int indiv,ten,hundred,thousand,tenthousand,place; /*分别代表个位、十位、百位、千位、万位和位数*/printf(“Please Input a integer(0~99999):”);scanf(“%ld”,&num);if (num>9999)place=5;else if (num>999)place=4;else if (num>99)place=3;else if (num>9)place=2;elseplace=1;printf(“place=%d\n”,place);printf(“For each digit:”);tenthousand=num/10000;thousand=(int)(num-tenthousand*10000)/1000;hundred=(int)(num-tenthousand*10000-thousand*1000)/100;ten=(int)(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-tenthousand*10000-thousand*1000-hundred*100-ten*10);switch(place){case 1:printf(“%d”,indiv);break;case 2:printf(“%d,%d”,ten,indiv);break;case 3:printf(“%d,%d,%d”,hundred,ten,indiv);break;case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv);break;case 5:printf(“%d,%d,%d,%d,%d”,tenthousand,thousand,hundred,ten,indiv);}}习题五一、选择题1.D 2.C 3.D 4.B 5.C6.B 7.C 8.B 9.B 10.B二、填空题1.(1) x>=0 或!(x<0) (2) x<amin2.(1) i<10 或i<=9 (2)j%3 或j%3!=03.(1) pi (2) fabs(t) (3)4三、写出下列程序的运行结果1.1 2.y=-1 3.4 4.a=2,b=8 5.*7 6.45 7.1 8.s=03423四、编程题1.#include <stdio.h>void main(){int i,j,k;for (i=1;i<=4;i++) /*输出上面4行*号*/{ for (j=1;j<=5-i;j++)printf(““); /*输出*号前面的空格*/for (k=1;k<=2*i-1;k++)printf(“*”); /*输出*号*/printf(“\n”); /*输出完一行*号后换行*/}}2.#include "stdio.h"void main(){ int num,n1,n2,p=1;scanf("%d",&num);while (num){ n1=num/10;n2=num%10;p*=n2;num=n1;}printf("num=%d,p=%d\n",num,p);}3.#include "stdio.h"void main(){ int i;float s1,s2,s3,s4,s5,sum,avg;for(i=1;i<=6;i++){ printf("Please enter a five subjects score\n");scanf("%f,%f,%f,%f,%f",&s1,&s2,&s3,&s4,&s5);sum=0;sum+=s1+s2+s3+s4+s5;avg=sum/5;printf("%d individuals,the average score is %.2f\n",i,avg);}}习题六一、选择题1.D 2.C 3.D 4.D 5.B6.A 7.C 8.D 9.A二、填空题1.地址常量2.非0 3.3.(1) j=9 (2) j>=0 4.(1) 0 (2) 6 5.(1) gets(temp); (2) strcpy(temp,str); 6.(1) i<3 (2) a[i][i] 7.(1) &a[i] (2) i%4==0 (3)printf("\n:\");8.(1) s[i]>=48 && s[i]<=57 或s[i]>='0' && s[i]<='9' (2) d[j]=0; 或d[j]='\0';三、写出下列程序的运行结果1.13715 2.s=15 3.58 4.11 5.7 0 6.how 7.max=9,row=1,col=0 8.6,4,3,2, are you? I am fine四、编程题1.#include <stdio.h>#define N 10void main(){ int a[32],x,k,r,i;printf(“Please input an integer:\");k=-1;do{ r=x%2;a[++k]=r;x/=2;}while(x>=1);for(i=k;i>=0;i--)printf(“%1d”,a[i]);printf(“\n”);}2.#include <stdio.h>#define N 10void main(){ int a[N+1]={10,20,30,40,50,60,70,80,90,100};int t1,t2,num,i,j;printf(“array a:\n”);for (i=0;i<N;i++)printf(“%d”,a[i]);printf(“\n”);printf(“Insert data:”);scanf(“%d”,&num);if (num>a[N-1])a[N]=num;else{ for (i=0;i<N;i++){ if (a[i]>num){ t1=a[i];a[i]=num;for (j=i+1;j<N+1;j++){ t2=a[j];a[j]=t1;t1=t2;}break;}}}printf("Current array a:\n”);for (i=0;i<N+1;i++)printf(“%5d\n”,a[i]);}3.#include <stdio.h>#define N 6void main(){ int i,j,a[N][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-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for (i=1;i<N;i++){ for (j=1;j<=i;j++)printf(“%5d ”,a[i][j]);printf(”\n”);}}4.#include "stdio.h"void main(){ char s[80],t[80],d;int i,j;printf("Please enter a string:\n");gets(s);printf("delete?\n");d=getchar();for(i=j=0;s[i]!='\0';i++)if(s[i]!=d){ t[j]=s[i];j++;}t[j]='\0';printf("%s\n",t);}5.#include "stdio.h"#define N 8void main(){ int s[N][3],i,j,k,m,t1;float a[N],sum,t2;for(i=0;i<N;i++){ printf("Please enter the %d-th three subjects score\n",i);sum=0;for(j=0;j<3;j++){ scanf("%d",&s[i][j]);sum+=s[i][j];}a[i]=sum/3;}for(i=0;i<N-1;i++){ k=i;for(j=i+1;j<N;j++)if(a[k]<a[j]) k=j;if(k!=i){ for(m=0;m<3;m++){ t1=s[i][m];s[i][m]=s[k][m];s[k][m]=t1;} /*交换整行的值*/t2=a[i];a[i]=a[k];a[k]=t2;}}for(i=0;i<N;i++){ printf("%d-th ",i);for(j=0;j<N;j++)printf("%d ",s[i][j]);printf("%.2f\n",a[i]);}}习题七一、选择题1.C 2.A 3.B 4.B 5.A 6.D 7.C 8.D 9.C 10.C二、填空题1.struct STRU t[20]; 2.x.x、x.y、x.z.y、x.z.z3.4,8 三、写出下列程序的运行结果1.6 2.0 3.4E5S 4.21 5.Zhao,m,85,90 四、编程题1.#include "stdio.h"#define N 45struct student{ char name[20];char sex[7];int age;int score;}std[N];void main(){ int i,max=0,rowi;for(i=0;i<N;i++){ printf("Please enter the data of the %d-th student:\n",i);printf("name:");scanf("%s",std[i].name);printf("sex:");scanf("%s",std[i].sex);printf("age:");scanf("%d",&std[i].age);printf("score:");scanf("%d",&std[i].score);if(max<std[i].score){ max=std[i].score;rowi=i;}}printf("name:%s ",std[rowi].name);printf("sex:%s ",std[rowi].sex);printf("age:%d ",std[rowi].age);printf("score:%d\n",std[rowi].score);}2.#include "stdio.h"#define N 5struct student{ char name[20];char sex[7];int score;}std[N];void main(){ int i,ml=0,fml=0;float sum=0,avg;for(i=0;i<N;i++){ printf("Please enter the data of the %d-th student:\n",i);printf("name:");scanf("%s",std[i].name);printf("sex:");scanf("%s",std[i].sex);if(std[i].sex[0]=='m'||std[i].sex[0]=='M')ml+=1;elsefml+=1;printf("score:");scanf("%d",&std[i].score);sum+=std[i].score;}avg=sum/N;printf("The number of male students:%d\n",ml);printf("The number of female students are:%d\n",fml);printf("The average scores are:%.2f\n",avg);}习题八一、选择题1.A 2.C 3.D 4.A 5.C6.A 7.D二、填空题1.(1) high=mid-1 (2) low=mid+1 2.(1) int m (2) m%i==0 (3) return s 3.(1) max=x[i][j] (2) max三、写出下列程序的运行结果1.625 2.Qian,p,95,92 3.2 4.12 5.h=8四、编程题1.#include "stdio.h"void main(){ int prime(int);int x;printf("\nPlease input an integer:");scanf("%d",&x);if(prime(x))printf("\n%d is prime.\n",x);elseprintf("\n%d is not prime.\n",x);}int prime(int n){ int flag=1,i;for(i=2;i<=n-1 && flag==1;i++)if(n%i==0)flag=0;return(flag);}2.#include "stdio.h"void delask(char a[]){ int i,j;char b[80];for(i=j=0;a[i]!='\0';i++)if(a[i]!='*'){ while(a[i]!='\0'){ b[j]=a[i];j++;i++;}break;}b[j]='\0';for(i=0;b[i]!='\0';i++)a[i]=b[i];a[i]='\0';}void main(){ char s[80];printf("Please enter a string:\n");scanf("%s",s);delask(s);printf("%s\n",s);}3.#include "stdio.h"struct date{ int day;int month;int year;};int days(struct date dt){ int y,m,d,ds[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,s=0;y=dt.year;d=dt.day;if(y%4==0 && y%100!=0||y%400==0) ds[1]=29;/* 计算每月的天数是本年第几天*/ switch(m){ case 1:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 2:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 3:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 4:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 5:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 6:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 7:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 8:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 9:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 10:for(i=0;i<m-1;i++)s+=ds[i];break;case 11:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;case 12:for(i=0;i<m-1;i++)s+=ds[i];s+=d;break;}return (s);}void main(){ struct date ymd;int dys;printf("Input year month and day\n");scanf("%d,%d,%d",&ymd.year,&ymd.month,&ymd.day);dys=days(ymd);printf("Today is the first %d days in the middle of this year.\n",dys);}习题九一、选择题1.A 2.D 3.A 4.D 5.B 6.A 二、写出下列程序的运行结果1.10 2.9 11 11 3.*** 4.12 5.8 6.1 11 21 3三、编程题1.#include "stdio.h"#define N 10float fmax=0,fmin=0;float average(float fscore[],int n){ int i;float faver,fsum=fscore[0];fmax=fmin=fscore[0];for(i=1;i<n;i++){if(fscore[i]>fmax)fmax=fscore[i];else if(fscore[i]<fmin)fmin=fscore[i];fsum+=fscore[i];}faver=fsum/n;return (faver);}void main(){ float fave,fnumb[N];int i;for(i=0;i<N;i++)scanf("%f",&fnumb[i]);fave=average(fnumb,N);printf("max=%.2f min=%.2f average=%.2f\n",fmax,fmin, fave);}2.此题有误,用宏定义较难实现。
C语言程序设计[第二版]习题参考答案解析
WORD格式可编辑C语言程序设计习题参考答案习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。
2.二进制是由0和1两个数字组成的进制方式。
3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。
4.在整数的二进制表示方法中,0的原码、反码都有两种形式。
5.有符号数有三种表示法:原码、反码和补码。
6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。
解:1.F 2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。
A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。
A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的表示方法准确地描述是。
A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。
A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是()。
A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。
A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。
A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。
C语言程序设计实验指导书参考答案[2]
上机实验指导与习题
参考答案
(仅供教师内部参考)
ห้องสมุดไป่ตู้
华南农业大学
目录
上机实验...................................................................................................................................................................1
二、实验内容
.........................................................................................................................................22
实验
...........................................................................................................................................1
二、实验内容
.........................................................................................................................................24
二、实验内容
.........................................................................................................................................24
C语言程序设计期末考试卷及答案
C 语言程序设计期末考试卷及答案一、单项选择题;从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内 每小题1分,共计30分;1.一个C 语言程序的执行是从 ;A 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B 本程序的main 函数开始,到main 函数结束C 本程序的main 函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序的main 函数结束 2.下列选项中不属于...C 语言关键字的是 ;Aswitch Bprintf Cdefault Dcase3.设有语句 int a = 4; ,则执行了语句 a += a -= a a; 后,变量a 的值是 ; A24B -24C4D164.已知int i;float d;,则正确的表达式是 ; Aint d Bintd%i Cintd%i Dintd%i5.已知int i,a;,执行语句i=a=39,a/5,a+11; 后,变量i 的值是 ; A5B16C27 D386.下列选项中合法的字符型常量是 ; A"a"B'\n'C"\n" Da7.下面程序的运行结果是 ;include <stdio.h> void main { int k = 15;printf"k = %d,k = %o,k = %x\n",k,k,k; }Ak = 15,k = 15,k = 15 Bk = 15,k = 17,k = 17 Ck = 15,k = 017,k = 0xf Dk = 15,k = 17,k = f8.已知a,b,c 为int 类型,执行语句:scanf"%d%d%d",&a,&b,&c;使得a 为10,b 为20,c 为30,以下不正确...的输入形式是 ; A10 B10 C10,20,30 D10 20 20 20 30 30 309.已知int x=1,y=2,z=3;,执行下列程序段后,输出的结果是 ; ifx>y z=x;x=y;y=z; printf"%d,%d,%d",x,y,z; A1,2,3B2,3,3C2,3,1D2,3,210.若变量c 为char 类型,能正确判断出c 为大写字母的表达式是 ; A'A'<=c<='Z' B'A'<=c||c<='Z' CA<=c&&c<=Z D'A'<=c&&c<='Z'11.有以下程序段:int k=0;whilek=1 k++;while 循环执行的次数是 ;------------------------------------------第----------------------------2----------------------------装---------------------------------------线---------------------------------------------班级 姓名 学号------------------------------------------第----------------------------1----------------------------装---------------------------------------线--------------------------------------------A无限次B有语法错,不能执行C一次也不执行D执行1次12.以下程序的输出结果是;void main{int x=1,a=0,b=0;switchx{ case 0:b++;case 1:a++;case 2:a++;b++; }printf"a=%d,b=%d",a,b;}Aa=1,b=0 Ba=1,b=1 Ca=2,b=1 Da=2,b=2 13.若有定义int i = 1;,执行语句while i < 10 i++; 后,i的值为 ; A9 B10 C11 D1214.有说明语句int a ={1,2,3,4,5};,则数组a包括了个元素;A10 B5 C6 D不确定15.以下程序段执行后,输出结果是 ;char str="abc\n\012\\\n";printf"%d",strlenstr;A5 B6 C7 D1316.若有以下定义:float t54;,能正确引用t数组元素的表达式是 ;At14 Bt50 Ct00 Dt0,017.执行下列程序段:int i,s = 0;int a 3 = {{1,2},{3,4},{5,6}};for i = 0;i < 3;i++s = s + aii;则s的值是 ;A5 B6 C12 D2118.下述对字符数组的描述中,错误..的是 ;A字符数组可以存放字符串B字符数组中的字符串可以整体输入输出C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较19.设有宏定义define Yx x+ 2 ,则下面程序段的运行结果是 ;int a = 2,b = 2,c = 1;printf"%d\n",a Y b + c ;A7 B8 C9 D1020.若用数组名作为函数调用的实参,传递给形参的是;A数组的长度B数组第一个元素的值C数组中全部元素的值D数组的首地址21.下面叙述中,不正确...的是 ;A在不同的函数中可以使用相同名字的变量B函数中的形式参数是局部变量C在一个函数内定义的变量只在本函数范围内有效D在一个函数内的复合语句中定义的变量在本函数范围内有效22.若在程序中定义了以下函数:float max float a ,float b{ return a>b a:b; }并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误..的声明是 ;A float max float a,b ;B float max float ,float ;C float max float a ,float b ;D float max float x ,float y ;23.要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是 ;A autoB externC staticD register24.类型相同的两个指针变量之间不能..进行的运算是 ;A+ B- C= D==25.若有说明语句:int i, x34 ;,则不能..将x11的值赋值给变量i的语句是 ;Ai = x + 1 + 1 ; Bi = x11;Ci = x + 1 ; Di = x1 + 1 ;26.有如下程序段:int a6 = { 1,2,3,4,5,6 };int m,ptr;ptr = &a0;m = ptr ptr + 2 ptr + 4 ;执行该程序段后,m的值为 ;A 15 B48 C24 D827.设有定义:enum team{ my,your=4,his,her = his+10};则枚举元素my、your、his、her的值分别是 ;A0 1 2 3 B0 4 0 10 C0 4 5 15 D1 4 5 1528.下面程序的运行结果是 ;union myun{ struct{ int x,y,z; }u;int k;}a;void main{ a.u.x = 4;a.u.y = 5;a.u.z = 6;a.k = 0;printf"%d\n",a.u.x;}A4 B0 C5 D629.表达式11 & 18的值是 ;A0 B1 C2 D27 30.当顺利执行了文件关闭操作后,fclose函数的返回值是 ;A 0 Btrue C -1 D 1二、填空题每小题2分,共计20分;1.C语言源程序编译后生成程序,然后经过连接生成可执行程序;2.实型常量有两种表示方法:小数形式和;3.rewind函数的功能是;4. 若ch是字符型变量,与ch=getchar;功能相同的语句是; 5.以下程序段要使指针变量p指向一个整型的动态存储单元,请填空;int p;p= mallocsizeofint;6.已知:int p,a = 2,b = 1;,则执行程序段p = &a;a = p + b; 后,a的值为; 7.已知:int x = 1, y = 2, z;,则执行z = x > y ++x : ++y;后,z的值为; 8.当执行下面程序且输入:ABC<回车>时,输出的结果是 ;include <stdio.h>void main{ char ss10 ="12345";getsss;printf“%s\n”,ss;}9.下面程序的功能是用函数的递归调用求nn≥1,请填空;float fint n{ if n==1 return1;else return ;}void main{ int n;scanf"%d",&n;printf"%.0f\n",fn;}10.以下程序执行后的输出结果是 ;void main{ int a = 3,b = 1,t;t = a << 2 | b;printf"%d\n",t ;}三、程序阅读题每小题4分,共计20分;1.以下程序执行后的输出结果是;include <stdio.h>void main{ int i;for i = 1;i <5;i++putchar‘’;}2. 以下程序执行后的输出结果是;void main{ int arr10={-1,2,3,4,-5,6,7,-8,9,0},i,k = 0;for i = 0;i <10;i ++ifarri<0 k++;printf"%d\n",k ;}3.以下程序执行后的输出结果是;void funint a10{int i,j,t;for i=0;i<9;i++for j=0;j<9-i;j++if aj>aj+1{t=aj;aj=aj+1;aj+1=t; }}void main{int i;int a10={4,3,5,1,0,8,2,6,7,9};funa;for i=0;i<10;i++printf"%3d",ai;printf"\n";}4.以下程序执行后的输出结果是;include <stdio.h>struct stu{ int x;int y;}p;int a2 = {10,20};struct stu aa2 = { 150,&a0,250,&a1};void main{ p = aa;printf"%d\n",++p-> x ; } 5.以下程序执行后的输出结果是;void swap int p1 ,int p2{ int k;k = p1;p1 = p2;p2 = k;}void main{ int a = 3,b = 6,x = &a,y = &b;swap x,y ;printf"%d,%d\n",x,y ;}四、程序改错题共2小题,每正确修改一处错误得2分,共计10分;注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果;1.下列程序的功能是计算数列1,3,5,…,2n-1,…的前n项之和,其中n由键盘输入;void main{int s=0,n,i=1;scanf"%d",n; / 1该行有错误/do{ s=s+i;i=i+2; }while i>2n-1; / 2该行有错误/printf"s=%d\n",s;}2.下列给定的程序中,函数average的功能是:求10个数的平均值;include <stdio.h>float averagefloat array{ int i;float aver,sum; / 1该行有错误/for i=0;i<10;i++sum=arrayi; / 2该行有错误/ aver=sum/10;returnaver;}void main{ float data10,aver;int i;printf"Please input 10 data:\n";for i=0;i<10;i++scanf"%f",&datai;aver=averagedata0; / 3该行有错误/printf"averege data is %5.2f\n",aver;}五、程序设计题共3小题,第1小题6分,第2、3小题各7分,共20分;1.输入x,计算并输出下列分段函数y的值结果保留2位小数;2.在一个已排序的整型数组设从小到大中,插入一个整数,使之仍然有序要求数组中原有的10个整数从键盘按顺序输入;3.请先编写一个函数concatchar str1 ,char str2 ,实现两个字符串的连接注意不要用strcat函数;再编写一个main 函数进行测试:在主函数中输入两个字符串,然后调用concat函数,最后将连接后的字符串输出;参考答案一、单项选择题;从A、B、C、D四个选项中,选择一个最佳答案填入括号内每小题1分,共30分,错选、漏选、多选均不得分;⎪⎩⎪⎨⎧>-≤≤<=)15(5.105.2)150(34)0(xxxxxy二、填空题每小题2分,共20分,错填、漏填均不得分;三、程序阅读题每小题4分,共20分说明:对于程序阅读题,如果该题考生所给出的答案仅仅是书写格式上的错误,没有其它方面错误,扣1分,否则该题不得分;四、程序改错题共2小题,每正确修改一处错误得2分,共计10分; 注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果;1. 1scanf"%d",&n;2while i<=2n-1; 2.1float aver,sum=0;2sum=sum+arrayi; 或者改为sum+=arrayi; 、sum=sum+array+i; 、sum+= array+i;sum=sum+array+i;也正确3aver=averagedata; 或者改为aver=average&data0; 也正确五、程序设计题共3小题,第1小题6分,第2、3小题各7分,共20分评分总则:若考生给出的程序语法正确,符合要求,能够实现具体功能,即可得满分;若程序存在错误,不能得出正确结果,阅卷教师酌情给分,给分方法参考下列评分标准; 1源程序代码include <stdio.h> main{float x,y; …… 1 分 printf"input x:";scanf"%f",&x; …… 2 分ifx<0 y=0;else if x<=15 y=4x/3;else y=2.5x-10.5; …… 2 分printf"y=%.2f\n",y; …… 1 分}2源程序代码include "stdio.h"main{int a11,i,b;printf"imput 10 sorted integer number:\n";for i=0;i<10;i++scanf"%d",&ai; …… 2 分printf"input an integer:\n";scanf"%d",&b; …… 1 分for i=9;i>=0&&ai>b;i--ai+1=ai; …… 2 分ai+1=b; …… 1 分printf"sorted numbers:\n";for i=0;i<11;i++printf"%5d",ai; …… 1 分}3源程序代码include <stdio.h>include <string.h>void concatchar str1,char str2 …… 1 分{int i,j;j=strlenstr1; …… 1 分for i=0; str2i='\0'; i++{str1j=str2i;j++;} …… 1 分 str1j='\0'; …… 1 分} main{ char str120,str220;printf"input two string:\n";getsstr1;getsstr2; …… 1 分 concatstr1,str2; …… 1 分 putsstr1; …… 1 分}。
C语言程序设计实例教程 第2版 习题答案
C语言程序设计实例教程第2版习题答案本书是关于C语言程序设计实例教程的第二版,旨在通过提供丰富多样的习题和答案,帮助读者更好地理解和掌握C语言程序设计的基础知识和技巧。
本文将为您提供习题答案的详细解析,以帮助您更好地学习和巩固所学的知识。
1. C语言程序设计基础习题答案1.1 习题1题目描述:编写一个程序,求解并输出两个整数相加的结果。
解析:可以使用C语言中的加法运算符进行两个整数相加的计算。
具体实现代码如下:```c#include <stdio.h>int main() {int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);int sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}```1.2 习题2题目描述:编写一个程序,求解并输出一个整数的平方。
解析:可以使用C语言中的乘法运算符进行整数的平方计算。
具体实现代码如下:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);int square = num * num;printf("整数的平方为:%d\n", square);return 0;}```2. C语言程序设计进阶习题答案2.1 习题3题目描述:编写一个程序,求解并输出一个整数的阶乘。
解析:可以使用循环结构来计算一个整数的阶乘,具体实现代码如下:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);int factorial = 1;for (int i = 1; i <= num; i++) {factorial *= i;}printf("整数的阶乘为:%d\n", factorial);return 0;}```2.2 习题4题目描述:编写一个程序,求解并输出一个正整数的所有因子。
C语言程序设计 习题答案 作者 张树粹 孟佳娜 第3章习题答案.doc
58800004.freigh 1. 1202. s=633. 01234the loop break out.5. sum=l sum=3sum=9 sum=33三、程序填空1. i++ i<102. i<100 i%3!二03. x!=T x<min4. i<75. i=l j<=i i*j四、编程题i 〈100#include <stdio.h> main(){float c,f;printf (” input f=\n n ); scanf(”%f”,&f);c=(5.0/9.0)*(f-32); printf(M %5.2f\n n ,c);}2.#include <stdio.h> main(){int x,y;scanf(H %d H ,&x);第三章习题 单项选择题 l.C 2.B 3. B 4.D 5. A 6.B (A.你好 B.你好再见晚7.B 8.C 9.B 10.C ll.C 12.D 13. C 二、写出程序运行结果C.你好晚安D.你好再见)if(x<0)y=x; elseif(x>=10) y=3*x・ll;else y=2*x_l; printf("\nx=%d,y=%d\n",x,y); }3.#include <stdio.h>main(){char grade;grade=getchar();switch(grade){ case 'A': printf(">=90n); break; case B:printf("80~89n); break; case C: printf(”70〜79”);beak; case D: printf(”60〜69”); break;case E: printf(n0-59H);} }4.#include <stdio.h>void main(){int p,r,n,m,temp; scanf(n%d,%d n,&n,&m);if(n<m){temp=n;n=m;m=temp;}p=n*m;while(m!=0){ r=n%m;n=m;m=r;printf(" %d,%d" ,n,p/n);}第2种算法:int d,k;for(;k<=m* n&&kv=m;++k_if(m%k==O&&n%k==O)d=k;printf("%d,%<f',d,p/d);5.#include<stdio.h>void main(){int n,a,b,c;for(n= 100;n<=999;n++){a=n/100;b=(n-a* 100)/10;c=n%10;if(n==a*a*a+b*b*b+c*c*c) printf(M%d,H,n);}}6・#include<stdio.h>main(){int a,b,c,d,t;scanf(n%d,%d,%d,%d n,&a,&b,&c,&d);printf("\na=%d,b=%d,c=%d,d=%d\n",a,b,c,d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printfC,%d,%d,%d,%d n,a,b,c,d);}7.#include <stdio.h>#include <math.h> main()float e=1.0,t= 1 ,n= 1;while(fabs(l /t)> 1 e-6){e=e+l/t; n=n+l; t=t*n;}printf("e=%f\n",e);}&#include "stdio.h*'main(){int i,j,k;for(i=0;i<=2;i 卄){ for(j=0;j<=2-i;j++) printf(H”);for(k=0;k<=2*i;k++) pHntf(”*“); printf(n\n n);}foT(i=0;iv=l;i++){ for(j=0;j<=i+l ;j++)printf(H”); for(k=0;k<=3-2*i-l;k++) printf(”*”);printf(n\n n);}}9.#include<stdio.h> #include <math.h> main(){int m,k,i,n=0;for(m=3;m<=100;m=m+2){k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if (i>=k+l) {printf(n%d ",m);n=n+1;} if(n%10==0)printf(n\n n);} printfCAn");}10.#include<stdio. h> main() {int d二0,a=2;float m, s=0;do {a=2*a;m=0. 8*a;s二s+m;d++;}while(a<=100); printf (,,%f\n/,, s/d);}。
兰州工业学院《C语言程序设计》2018-2019期末试卷A
兰州工业学院期末检测卷A2018-2019年度第1学期课程名称:C语言程序设计考察年级:2018级班级姓名学号一、单项选择题(2分*20题=20分)1.()是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从开始执行。
A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是()。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是()。
A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是()。
A.-a1B.a[i]C.a2_iD.int t 6.如果int a=3,b=4;则条件表达式"a<b?a:b"的值是___。
A)3B)4C)0D)17.若int x=2,y=3,z=4则表达式x<z?y:z的结果是().A)4B)3C)2D)0E)18.C语言中,关系表达式和逻辑表达式的值是()。
A)0B)0或1C)1D)‘T’或’F’9.下面()表达式的值为4.A)11/3B)11.0/3C)(float)11/3D)(int)(11.0/3+0.5)10.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是()A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)11.若有以下数组说明,则i=10;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.10B.9C.6D.512.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:()A.2B.3C.4D.无确定值13.对二维数组的正确定义是()A.int a[][]={1,2,3,4,5,6};B.int a[2][]={1,2,3,4,5,6};C.int a[][3]={1,2,3,4,5,6};D.int a[2,3]={1,2,3,4,5,6}; 14.已知int a[3][4];则对数组元素引用正确的是_____A)a[2][4]B)a[1,3]C)a[2][0]D)a(2)(1)15.C语言中函数返回值的类型是由决定的.A)函数定义时指定的类型B)return语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型16.下列不正确的定义是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
某高校主要人员有:在职人员(行政人员,教室,一般员工),退休人员和临时工。现在需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中人员编号是唯一的,不能重复。
(1)添加/删除功能:能根据学院人事变动情况,添加删除记录。
(2)总体设计
整体系统设计为数据输入模块、数据添加模块、数据删除模块、数据查询模块、数据修改模块、数据统计模块、数据排序模块。
(2)查询功能:能根据编号和姓名进行查询。
(3)编辑功能(高级):根据查询对相应的记录进行修改存储。
(4)统计功能:能根据多种参数进行人员的统计(在职人数,党员人数,女职工人数,高学历高职称人数(硕士学位以上或者副教授以上)),同时要求显示被统计者的相应信息。
(5)排序功能:按照年龄、来院时间进行排序。
(6)保存功能:能对输入的数据进行相应的存储。
提示:
(1)需求分析
人事档案信息采用文件存储,因而要提供文件的输入输出操作,根据学院人事变动情况添加删除记录,因而要提供文件的添加删除操作;根据编号和姓名进行查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;统计功能要提供添加操作;排序功能要提供用排序算法对文件记录的排序;另外,还要提供键盘式选择菜单以实现功能选择。