C语言程序设计实验与习题指导同步自测答案
2.7.3 同步自测C语言程序设计实验与习题指导 习题答案
2.7.3 同步自测一、选择题1.设有字符数组a,则正确的输入语句是(C)。
(A)gets('a'); (B)scanf("%c",a);(C)scanf("%s",a); (D)gets("a");2.用strlen("abcd\0ef\ng\0")的结果为(A)。
(A)4 (B)5 (C)8 (D)103.在C语言中,下面关于数组的描述中正确的是( C)。
(A)数组的大小是固定的,但可以有不同类型的数组元素(B)数组的大小是可变的,但所有数组元素的类型必须相同(C)数组的大小是固定的,所有数组元素的类型必须相同(D)数组的大小是可变的,可以有不同的类型的数组元素4.字符串常量〞ab c\nt\012\xa1*2〞在内存中所占的存储空间节数是(C。
(A)11 (B)13 (C)15 (D)185.C语言中,函数调用时若实参是数组名,则传递给被调函数对应形参的是( A)。
(A)整个数组(B)数组元素的个数(C)数组占用的内存单元个数(D)数组在内存中存放的首地址6.在下面关于一维数组的定义中,其中(C)有语法错误。
(A)int x[]={1,2,3,4,5}; (B)int x[5]={0};(C)int x[]; (D)int x[5];7.设有定义:char string[]="Beijng!”;则元素string[7]为(C)。
(A)g (B)! (C)\0 (D)n8.以下不能正确定义二维数组的选项是(D)。
(A)int a[2][2]={{1},{2}}; (B)int a[][2]={1,2,3,4};(C)int a[2][2]={{1},2,3}; (D)int a[2][]={{1,2},{3,4}};9.若有说明:int a[10] ; 则对a 数组元素的正确引用是(B)。
C语言程序设计 上机实验指导与习题 参考答案(第四版)
C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
C语言程序设计实验与习题指导同步自测答案
C语言程序设计实验与习题指导同步自测答案2.1.3 同步自测一、选择题1.D2.C3.D4.C5.A6.B7.D8.C二、填空题1.①c ②exe2.①main3.①函数说明部分②函数体4.①主或main ②主或main5.①;2.2.3 同步自测一、选择题1.B2.D3.C4.C5.C6.B7.D8.A9.C 10.B 11.D 12.D 13.D 14.C 15.C 16.D 17.C 18.C 19.B 20.A 21.D 22.A 23.D 24.C 25.D 26.B 27.B 28.D 29.D 30.C 31.A 32.B 33.D 34.B 35.C2.3.3 同步自测一、选择题1.B2.C3.D4.A5.B6.A7.A8.A9.D 10.B2.4.3 同步自测一、选择题1.B2.A3.B4.C5.B6.D7.C8.A9.D 10.B二. 编程题1.#include<stdio.h>void main(){int x,y;printf("请输入自变量x的值: "); scanf("%d",&x);if(x<0) y=3*x+1;else if(x<5) y=2*x;else y=x+2;printf("\n函数y的值为: %d",y); }2.#include<stdio.h>void main(){int a,b,c,d,t;printf("请输入四个整数:\n");scanf("%d%d%d%d",&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);}2.5.3 同步自测一、选择题1.C2.C3.D4.D5.D6.C7.D8.B9.A 10.B11.B 12.B 13.B 14.B 15.C二、填空题1.①getchar()2.①n++3.①′\n′②num++;4.①n<=m ②total=total+sum5.①(i/100)*(i/100)*(i/100)+((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%10)*(i%10)*(i%10)②g==i6.①107.①i%j==08.①b9.①y=1 ②x%i==0 10.①2*x+4*y==90三. 读程序写结果题1.8,1....2. 572..3. .四. 编程题1.main(){int x,y,a,b;for(x=100;x<1000;x++){y=0;a=x;while(a){ y=y*10+a%10;a=a/10;}if(x+y==1333)printf("a=%d;b=%d;c=%d\n",x/100,(x/10)%10,x%10);}}2.main(){long x,y/* 存放x */,n/* 记录x的位数 */,s/* 存放x*x */;long z /* 存放被取的顺序从右到左的相应部位数字 */,t/*十进制的权*/; for(x=1;x<=100;x++){y=x;n=0;z=0;t=1;while(y){n++; /* 记录x的位数 */y=y/10;}s=x*x;for(;n>0;n--){z+=(s%10)*t; /* 取相应部位数字 */t*=10;s=s/10;}if(x==z) printf("%-10ld",x); }}3.main(){int i;for(i=1;i<=100;i++)if((i+3)%5==0&&(i-3)%6==0) {printf("%d",i);break;}}4.main(){int x,a,b,c;for(x=100;x<1000;x++){a=x/100;b=(x/10)%10;c=x%10;if(a*a*a+b*b*b+c*c*c==1099)printf("%-10d",x);}}5.main(){int x,a,b,c,count=0;for(x=100;x<1000;x++){a=x/100;b=(x/10)%10;c=x%10;if(a+b+c==5)count++;}printf("共有%d个其各位数字之和是5的数字",count); }2.6.3 同步自测一、选择题1.B2.C3.D4.B5.A6.D7.D8.D9.D 10.B 11.B 12.A 13.D 14.D 15.B 16.B 17.A 18.A 19.B 20.A21.A 22.D 23.D 24.A 25.A二、填空题1.① fac(n-1)2.①a*a%8!=13.①a%b4.①i++5.①j!=0 或 j ② n%10+’0’6.① x>=’a’&&x<=’z’7.① x=n ②n%10 ③x三、读程序写结果题1. 9,1..2. f=....3. . . .5. 3.......6.-5,-12,-..7.10,20,3.....8. !EDCBA9. 432......10. 711........13.5,2...17..15,14... 18..6四、编程题1.#include <stdio.h>void delspace(char *s){ int i,j;for(i=0,j=0;s[i]!=’\0’;i++)if(s[i]!=’ ’){s[j]=s[i];j++}s[j]=’\0’;}void main(){ char *str;printf(“input string:”);gets(str);delspace(str);printf(“%s”,str);}3.#include <stdio.h>#include <math.h>void main(){int isprime(int x);int a;printf(“please input the number:\n”);scanf(“%d”,&a);if(isprime(a))printf(“the %d is a prime\n”,a);elseprintf(“the %d is not a prime\n”,a);}int isprime(int x){ int j;for(j=2;j<=sqrt(x);j++)if(x%j==0) return 0;return 1;}2.7.3 同步自测一、选择题1.C2.A3.C4.A5.D6.C7.C8.D9.B 10.B11.D 12.C 13.D 14.D 15.B二、填空题1.① k=p2.①a[i][j]<min3.① i+j==24.① continue5.①j=3 ② a[j-1][k-1]6.① x/10 或int(x/10)7.① !(s[i]>=’0’&&s[i]<=’9’)8.①a[n-i-1]=temp三、读程序写结果题1.max=10,row=2,colum=....2. 18,103.countrysid........4. xbcdBCD四、编程题1.参考程序及评分标准一:#include<stdio.h>#define N 5viod main(){ int a[N+1],x,i,k;for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&x); //2分 for(i=0;a[i]<x&&i<N;i++); //3分 for(k=N;k>i;k--)a[k]=a[k-1];a[i]=x; //3分 for(i=0;i<=N;i++)printf("%5d",a[i]);putchar(‘\n’); //2分 }参考程序及评分标准二:#include<stdio.h>#define N 5viod main(){ void insert(int v[],int n,int x);int a[N+1],x,i;for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&x); //2分 insert(a,N,x); //2分 for(i=0;i<=N;i++)printf("%5d",a[i]);putchar(‘\n’); //2分 }void insert(int v[],int n,int x){int i,k;for(i=0;v[i]<x&&i<n;i++); //2分 for(k=N;k>i;k--)v[k]=v[k-1];v[i]=x; //2分}3.#include <stdio.h>#include <string.h>void main(){void copystr(char *p1,char *p2,int m);scanf(“%s”,str1);scanf(“%d”,&m);if(strlen(str1)<m)printf(“input error”);else{ copystr(str1,str2,m);printf(“the result is :%s”,str2);}}void copystr(char *p1,char *p2,int m){ int n=0;while(n<m-1){n++; p1++;}while(*p1!=’\0’){*p2=*p1;p1++;p2++;}*p2=’\0’;}2.9.3 同步自测一、选择题1...2..3..4..5..6..7...8..9..10.11..12..13..14..15.。
《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)
⑵
⑶
⑷
⑸
⑹
⑺
⑻
⑼
⑽
答案
B
A
C
C
D
D
B
A
A
C
编号
⑾
⑿
⒀
⒁
答案
A
C
D
B
(一)填空题
编号
答案
编号
答案
⑴
⑵
⑶
⑷
⑸
b=i+1
i<10j%3!=0
52
right
17
⑹
⑺
⑻
⑼
⑽
X
S=25489213**六、数组(一)选择题
编号
⑴
⑵
⑶
⑷
⑸
⑹
⑺
⑻
⑼
⑽
答案
C
D
C
D
D
A
C
A
A
B
编号
⑾
⑿
⒀
⒁
答案
D
B
A
D
(一)填空题
编号
答案
C
D
D
A
7
8
9
10
11
12
C
A
C
D
C
B
13
14
15
16
17
18
A
C
D
C
A
B
2.填空
(1)22(2)struct st(3)2,3(4)zhao
(5)13(6)380039(7)struct list q
9
十一文件
1.选择
1
2
3
4
5
6
C语言程序设计及实验指导练习及习题参考答案(8--10)
C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
第五章自测练习答案 清华大学出版社 C语言习题、实验指导及课程设计
第五章自测练习参考答案一、选择题1.B或C2.D3.B4.D5.D6.C和D7.C8.C9.C 10.D(实际都正确)11.C 12.B 13.D 14.A 15.B 16.B 17.C 18.D 19.B 20.D21. D 22.B 23.D 24.D 25.D 26.D 27.C 28.A 29.A 30.A 31.D二、填空题1.i=1 x[i-1]2. &a[i] i%4==0 putchar(‘\n’);或printf(“\n”);3. k=0; k=i j=0; j=i i=a[k];a[k]=a[j];a[j]=i;4. 1 3 4 55. 求数组中正数的和并输出6.The number is :5,The average is:5.7. 常量表达式常量表达式8.按行存放,即先存第一行,再存第二行,以此类推9.0 610.011.3012.j=2 j>=013. 16 711 12 1316 17 18 1921 22 23 24 2514. j<=2 b[j][i]=a[i][j]15. 5816.在第一条scanf语句后增加j=n; % / 将第三个printf语句中的输出项n换成j j=i; j>0; j—17. 818. 60019. 在第三个for语句前增加s=0; k=0 a[i][k]*b[k][j] printf(“\n”);20. str[0] 并在第一个strcpy语句后增加一行:if(strcmp(str[1],s)<0) strcpy(s,str[1]);最后的空为:s三、编程题1.参考程序如下:#include "stdio.h"#define N 10void main(){int i,price[N];int max,min;float ave,sum;for(i=0;i<N;i++) scanf("%d",&price[i]);max=min=price[0];sum=ave=0;for(i=0;i<N;i++){sum+=price[i];if(price[i]>max) max=price[i];if(price[i]<min) min=price[i];}ave=(float)sum/N;printf("价格范围为%d---%d;平均价格为%.2f\n",min,max,ave);}2.选择排序的程序如下:#include "stdio.h"void main(){int i,j,min,temp,a[10];/*input*/for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");/* start to sort */for(i=0;i<10-1;i++){min=i;for(j=i+1;j<10;j++)if(a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}/*output*/for(i=0;i<10;i++)printf("%5d",a[i]);}3.冒泡排序的程序如下:#define N 10#include "stdio.h"void main(){int i,j,m;int a[N];for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=1;i<N;i++)for(j=0;j<N-i;j++)if(a[j]>a[j+1]){m=a[j];a[j]=a[j+1];a[j+1]=m;}for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}4。
C语言程序设计实验指导及习题解答(最新)(1)
C语言程序设计实验指导及习题解答(最新)(1)内容简介本书是与《C语言程序设计教程》(中国科学出版社)配套使用的教学参考书,内容包括:VC++6.0和Turbo C 2.0两种集成编程环境的使用及两种环境下C语言程序的开发过程和调试方法的介绍;C语言程序设计相关章节实验项目;《C语言程序设计教程》一书中各章节习题的参考解答;配合全国计算机等级考试二级C的拓展训练试题。
本书内容详实,实验项目设计合理,具有较强的条理性和针对性,是学习C语言并更好地掌握C语言程序上机实践的必备参考书。
本书可作为高等院校计算机专业或其他非计算机专业的计算机程序设计教学用书,也可作为从事计算机应用及开发人员的参考书。
前言《计算机程序设计基础(C语言)》课程是我国高校理工科专业普遍开设的一门计算机公共基础课程,该课程实践性较强,要求学生具有较好的上机实践能力。
为配合该课程的理论内容的学习,使得学生既能够较好地掌握课程的理论知识内容又能具备较强的上机实践能力,我们特组织了C语言实践教学经验丰富的教师编写了此书。
本书内容丰富,首先系统地介绍了两种常用的C语言集成开发环境VC++ 6.0和Turbo C 2.0的使用方法及程序的调试过程和方法。
在本书的第二部分�D�D实验项目设计中,我们有针对性地根据许多编程人员易犯的错误精心设计了各实验的内容,并且丰富了实验项目的种类以使得读者能够更好更快地掌握C语言程序设计的方法和技巧。
本书的第三部分给出了《C语言程序设计教程》中部分习题的参考答案,其中程序设计习题我们都给出了相应的参考程序代码,以帮助读者掌握C语言程序设计的知识内容并培养和锻炼程序阅读的水平和能力。
另外,为配合广大读者更好地参加全国计算机等级考试二级C的考试,我们不仅在本书的第三部分中给出了模拟试题,而且在第二部分的实验项目设计时也与等级考试的机试题型尽可能地保持一致。
本书由湖北襄樊学院李勇负责组织编写并统稿,袁磊教授主审。
C语言程序设计 上机实验指导与习题 参考答案(第四版)
C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
C语言程序设计教程习题解答与实验指导
C语言程序设计教程习题解答与实验指导C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授编程语言的基础知识,还培养学生的逻辑思维和问题解决能力。
本教程旨在为学习C语言的学生提供习题解答和实验指导,帮助他们更好地理解和掌握C语言的编程技巧。
第一部分:习题解答1. 基础语法- 问题1:编写一个程序,输出“Hello, World!”。
解答:在C语言中,最基本的程序结构是`main`函数。
使用`printf`函数可以输出文本到控制台。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```- 问题2:声明一个整型变量`a`,并为其赋值为10。
解答:在C语言中,使用`int`关键字声明整型变量。
```cint a = 10;```2. 控制结构- 问题3:编写一个程序,根据用户输入的分数判断成绩等级。
解答:使用`if-else`语句可以实现条件判断。
```c#include <stdio.h>int main() {int score;printf("请输入你的分数:");scanf("%d", &score);if (score >= 90) {printf("A\n");} else if (score >= 80) {printf("B\n");} else if (score >= 70) {printf("C\n");} else if (score >= 60) {printf("D\n");} else {printf("F\n");}return 0;}```3. 循环结构- 问题4:使用循环结构打印1到10的数字。
C语言程序设计 上机实验指导与习题 参考答案
C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
【免费下载】C语言程序设计实验与习题指导第2版参考答案
二、填空题
sum/n
index=-1 break
end-1
(aver-max-min)/6
top=min+1
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
2.6.3 同步自测C语言程序设计实验与习题指导 习题答案
2.6.3 同步自测一、选择题1.在C程序的函数调用时,主调函数中的实参和被调函数中的形参(B)。
(A)个数、次序必须相同,但数据类型可以不考虑(B)个数、次序和对应参数的数据类型都应该相同(C)个数、次序和数据类型均可以不相同(D)对应参数数据类型应相同,但个数和次序可以不考虑2.以下程序的输出结果是(C)。
int x=3,y=4;void main( ){ int x,y=5;x=y++;printf("%d",x);}表达式(A)3 (B)4 (C)5 (D)63.在C语言中,函数默认的存储类型为(A)。
(A)auto (B)register (C)static (D)extern4.执行下面的程序后,变量a的值是(B)。
#include <stdio.h>#define SQR(X) X*Xvoid main(){ int a=10,k=2,m=3;a/=SQR(m)/SQR(k);printf("%d\n",a);}(A)10 (B)1 (C)5 (D)05.一个C程序的执行是从(A)。
(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束6.以下有关宏替换的叙述不正确的是(D)。
(A)宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的7.设有以下宏定义:#define N 3#define Y(n) (N+1*n)则执行语句:z=2*(N*Y(5+1)); 后,z的值为(A)。
(A)30 (B)72 (C)48 (D)548.在C语言中,以下叙述错误的是(C)。
(A)函数被调用时,系统才为形参分配内存(B)实参和对应形参的数据类型必须一致(C)实参可以是变量、常量或表达式(D)形参可以是变量、常量或表达式9. 一个数据类型为void的函数中可以没有return语句,那么函数的被调用时(A)。
C语言实验指导书自测练习参考答案
参考答案:自测练习第1套一.选择题1. B2. A 3 D 4. A 5. A 6 B 7 A 8 D 9 C 10 A11 D 12 A 13 C 14 B 15 C 16C 17 D 18 A 19 C 20 D二、填空题1.5 2.选择结构 3.相等 4.1 5.Main(主)6.28 7.void 8.局部变量 9.double 10.60三、读程序写结果1、 10 11 13 14 16 17 19 202、 63、 14、 7 85、 China!6、 8四、填写程序段,使程序完整1、① j<=i ② "\n"2、① *y=temp ② &x,&y3、① s=0 ② i+=24、① i= =j ② a[i][j]5、① *p==' ' ② *p>='0' && *p <='9'自测练习第2套二、填空题。
1、main()2、83、顺序、选择、循环4、double5、106、27、18、地址传递三、读程序写结果。
1、a=b,b=c,c=d2、-13、12345543214、8525、336、end四、程序填空。
1、b[j][i]=a[i][j]2、p *p p++3、j=i+1 > b[i]=b[j] a4、p=max (*p)(a,b)自测练习第3套一、选择题ACDDA ACDDC ABADB BCBCC二、填空题1.ch>=’A’ && ch<=’Z’||ch>=’a’&&ch<=’z’ 2. arr[1].i 3.2 4.基类型 5.7 6.777.‘\0’ 8. int 9.i=6 10.38三、结果题(每小题5分,共30分)1.120 2.LANG 3. 14.a=2,b=1 5.2030 886.1 3 57 9 1113 15 17四、程序填空题(每空2分,共20分)1、&a[i] 2、a,b,x 3、10 4、w0 a*b/x 2+age(n-1) ch, fpi fp自测练习第4套一、选择填空题1.D 2.A 3.C 4.A 5.D 6.A 7.B 8.C 9.C 10.A 11.B 12.D 13.B 14.A 15.A 16.A 17.D 18.C 19.B 20.A 二、填空1.t=a; 2.p=&k; 3.14.非零(或1) 5.p=max; 6.27.2 8.3 9.1010.m/10%10*100+m/100*20+m%10三、写出下列程序的运行结果1.abc 2.12 3.7,8,7 4.95.6 6.270.00四、完成下列程序1.k==j 6.*p&&*q (或*p!=’\0’&&*q!=’\0’) 2.j=2 ; j>=0 7.*p<*q3.k+j==2 8.*p4.fputc ( ch, fp ); 9.c5.fclose ( fp ); 10.q自测练习第5套一、选择题二、填空题【1】 sqrt(pow(y,x)+log(y)) 【2】 160 【3】 6.000000 【4】 re'hi'you 【5】 a=16, y=32 【6】 1 3 7 15 【7】 12 【8】 158 【9】 m=40 【10】 "d1.dat","rb"*#*#**#***#*235 *#*#* 551、 2、 3、29 sum=260.00 34、 5、 6、四、程序填空题【1】 y1 【2】 fabs(y1-y0)>=1e-4 【3】 i+1 【4】 p[j],p[k] 【5】 1 【6】 x[i-1][j-1]+x[i-1][j] 【7】 m 【8】 m%n 【9】 str+strlen(str)-1 【10】 string五、程序设计题1、int fun(int m,int aa[]){ int num=0,i,k;for(i=2;i<=m;i++){for(k=2;k<i;k++)if(i%k==0) break;if(k>=i)aa[num++]=i; }return num; }2、double fun(lnode *head){lnode *p;int n=0;double ave=0;p=head->next;while(p){ ave+=p->data;n++;p=p->next; }ave/=n;return(ave); }自测练习第6套一、选择题1、 B2、 A3、 A4、 C5、 D6、 C7、 A8、 B9、 D 10、 C11、 A 12、 D 13、 A 14、 D 15、 B16、 B 17、 D 18、 D 19、 D 20、 C1)6 2)0.03)1 4)printf(“abc”)5)3 6)37)3 8) a=129)9 10)a!=0&&b!=0三、写出程序运行后的正确结果1、 5 5 32、 * #3、 min=-2 , row=2 , col=14、 max is 25、 -1 3 6 8 96、 n=4四、程序填空1、(1) y%4==0&&y%100!=0 2) f=02、(1) i==j (2) i+j==23、(1) p1,p2,p3 (2) *pt2=temp4、(1) (2) stu5、(1) filename,"w" (2) '#'自测练习第7套一、选择题(共20分每题1分)B DCD D D A A CC D A D DC B C B C B二、填空题(共10分每空1分)1、123.4600002、10 113、04、25、文本文件6、起始地址7、118、地址9、i=10,j=20 10、4三、写出下列程序的执行结果(共30分,每题5分)1、*#*#*2、163、244、925、c6、5,11四、完成程序填空(20分,每空2分)1、9 i2、&a[i] a[i]3、*p n4、return 0 return 15、gets(a) b[i]!=’\0’自测练习第8套一、选择题:BADCA CCDBB BADBD DDBCC二、填空题 1.int 2.8 3.1 4.AB5. 6.000000 6.i=10,j=21 7. gae8. sizeof(student)或sizeof(struct st)*50或50*sizeof(struct st)9. EOF或-1 10. fopen(”A:\\user\aaa.txt”,”r+”)三、程序结果题1.1 3 7 152. 4,63. 30 254. 1365.196. 80四、程序填空题1. –f fun(10)2. s[i]!=‘\0’ s[i]>='0'&&s[i]<='9'3. m<n r!=04. 1 a%i==05. *p<*q *p。
253同步自测c语言程序设计实验与习题指导习题答案
2.5.3 同步自测一、选择题1.循环语句for(a=0,b=0;(b!=45)||(a<5);a++);的循环次数是(D)。
(A)4 (B)3 (C)5 (D)无数多次2.以下程序的输出结果为(C)。
#include<stdio.h>void main(){ int i=0;for(;;)if(i++==5)break;printf(〞%d\n〞,i);}(A)0 (B)5 (C)6 (D)前3个选项都错3.以下程序的输出结果为(D)。
#include<stdio.h>void main(){ int x,n;for(n=10,x=0;n=0;x++,n--);printf(〞%d\n〞,x);}(A)程序无限循环无输出(B)10 (C)1 (D)04.若 N为整型变量,则for(N=10;N=0;N--);循环里的循环体被(D)。
(A)无限循环 (B)执行10次(C)执行一次 (D)一次也不执行5.以下不是死循环的语句是(B)。
(A)for(;;x += i);(B)while(1){x++;}(C)for(i=10;;i--)sum-=i;(D)for(;(c=getchar())!='\n';)sum-=i;6.int x=3; 执行下面的情况段后输出结果为(C)。
do{printf(〞%d〞,x-=2);}while(!(--x));(A)1 (B)30 (C)1-2 (D)死循环7.若想结束本次循环而不是终止整个循环的执行,则使用(D)。
(A)exit(0) (B)goto (C)break (D)continue8.for(;;){……}是指(B)。
(A)无意义 (B)无限循环 (C)循环执行1次 (D)循环执行0次9.C语言中while与do-while语句的主要区别是(A)。
(A)do-while的循环体至少无条件执行一次(B)do-while允许从外部转到循环体内(C)do-while的循环体不能是复合语句(D)while的循环控制条件比do-while的循环控制条件严格10.下列程序运行结果(B)。
C语言程序设计习题解析与实验指导(含答案)
样采用指数形式,但尾数部分被省略了,也不合法;答案 C 采用小数形式,其小数部分可以省略;
答案 D 表示的是整型常量。因此本题选择答案 C。
3. 下列不合法的常量是
。
A.'\x4A'
B." "
C. .8e0
D.'\483'
【参考答案】D
【解析】此题考查的是各种数据类型常量的表示方法:答案 A 是一个转义字符常量,“\x”后
的程序叫做目标程序。由于计算机只能识别二进制码,因此用机器语言编写的源程序就是计
算机能直接识别并运行的目标程序,二者之间无需经过任何翻译;而用汇编语言编写的源程
序需要经过汇编程序汇编才能得到对应的目标程序;用高级语言编写的源程序经过相应的编
译器编译或者用解释的方式得到目标程序,不同语言对应的编译程序或者说编译器不一样。
一、单选题
1.以下哪一个可以作为正确的变量名
。
A. R&D
B._filename C.for D.$X;
【参考答案】B
【解析】此题考查的是标识符的命名规则:标识符是以字母或下划线开头,后面跟字母、
数字、下划线的任意字符序列。答案 A 中的变量名使用了“&”号,不符合要求;答案 C
是关键字,而用户自定义标识符不能使用关键字;答案 D 的变量名以“$”开头,不符合以
2
主教材习题答案及解析 1-3 章
输入设备:键盘、光电笔、扫描仪、鼠标、摄像头、数码相机、手写输入板、游戏杆、 麦克风;
输出设备:打印机、音响、显示器、绘图仪; 既是输入设备又是输出设备:U 盘、SD 卡、光盘、触摸屏、硬盘。 【解析】根据输入设备、输出设备、外存储器的功能以及这些硬件本身的功能区分。 4.简述源程序与目标程序的关系。 【参考答案】 程序员用某种编程语言所编写的程序称为源程序;计算机能直接执行的程序称为目标程 序。目标程序的操作码和操作数都是 0/1 序列,而源程序却不一定是 0/1 序列。源程序必须 转换为目标程序计算机才能读懂并执行。 用机器语言编写的源程序就是目标程序;用汇编语言编写的源程序必须用汇编程序经过 汇编得到目标程序;用高级语言(不是全部)编写的源程序必须用特定的编译程序经过编译 得到目标程序。但并非所有的高级语言编写的源程序都会被编译为目标程序,有的高级语言 例如 BASIC 语言的源程序就是通过解释方式执行程序的,就是边扫描边解释,逐句输入逐 句翻译,计算机一句句执行,并不产生目标程序。 【解析】根据教材 1.2.2 小节的知识。 5.简述 C 程序的开发过程。 【参考答案】 一个 C 程序从编写到执行出结果一般需要 6 个步骤:编辑、预处理、编译、链接、装 载和执行。下面是这几个步骤所完成的任务。 (1)编辑 编辑是通过输入设备将 C 语言源程序录入到计算机中,生成扩展名为“.c”的源文件。 (2)预处理 预处理是指通过预处理器对程序中的预处理指令(它们是为优化代码而设计的)进行转 译。每条预处理指令以符号“#”开头。 (3)编译
《c语言程序设计》实验指导书答案
《c语言程序设计》实验指导书答案《C语言程序设计》实验指导书答案实验一:C语言环境搭建与基本语法1. 问题:如何在计算机上搭建C语言开发环境?答案:搭建C语言开发环境通常需要安装编译器和集成开发环境(IDE)。
常见的编译器有GCC,而IDE如Visual Studio Code、Code::Blocks等。
安装完成后,配置好编译器路径,即可开始编写和编译C语言程序。
2. 问题:C语言的基本数据类型有哪些?答案:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及更复杂的结构体(struct)和联合体(union)等。
3. 问题:如何定义一个变量?答案:定义变量的基本语法是:`类型名变量名;`。
例如,定义一个整型变量a:`int a;`。
4. 问题:如何实现变量的输入和输出?答案:使用`scanf`函数进行输入,使用`printf`函数进行输出。
例如,输入一个整数并输出:`scanf("%d", &a); printf("%d", a);`。
实验二:控制结构1. 问题:C语言中的条件语句有哪些?答案:C语言中的条件语句主要有`if`语句和`switch`语句。
2. 问题:如何使用`if`语句?答案:`if`语句的基本语法是:`if (条件) { 语句 }`。
例如,判断一个数是否为正数:`if (a > 0) { printf("正数"); }`。
3. 问题:如何使用`switch`语句?答案:`switch`语句用于多条件分支选择。
基本语法是:`switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... default: 默认语句; }`。
4. 问题:C语言中的循环语句有哪些?答案:C语言中的循环语句主要有`for`循环、`while`循环和`do-while`循环。
C语言实验指导与习题参考答案
2 0 1 0 年3 月2 8 日
程序设计基础(C 语言版 ) (第 2 版)实验指导与习题 参考答案
目
3.1
录
3.2பைடு நூலகம்
3.3
3.4
3.5
3.6
3.7
3.8
3.9
C 语言初步 ............................................................................................................................................ 1 1 .选择题 ............................................................................................................................................... 1 2 .填空题 ............................................................................................................................................... 1 3 .简答题 ............................................................................................................................................... 1 4 .编程题 .....................................
2.2.3同步自测c语言程序设计实验与习题指导习题答案
2.2.3同步自测c语言程序设计实验与习题指导习题答案2.2.3 同步自测一、选择题1.如a为int型,则与表达式a等价的C语言关系表达式是(B)。
(A)a>0 (B)a!=0 (C)a==0 (D)a<02.运行完下列程序后,在屏幕上的内容是(D)。
void main (){ int a=0;a+=(a=12);printf ("%d\n",a);}(A)0 (B)6 (C)12 (D)243.若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式(D)。
(A)x==y (B)x-y==0(C) fabs(x-y)<1e-8 (D)labs(x-y)<1e-84.执行下面程序中输出语句后,a的值是(C)。
#include<>main( ){ int a;printf("%d\n",(a=3*5,a*4,a));}(A)65 (B)20 (C)15 (D)105.若变量t为double类型,表达式(t=1,t+5,t)的值是(C)。
(A)1 (B) (C) (D)66.下述程序的输出结果是(B)。
#include <>void main(){ int a,b,c=241;a=c/100%9;b=-1&&-1;printf("%d,%d\n",a,b);}(A)2,0 (B)2,1 (C)6,1 (D)0,-17.设有C语句:int x=3, y=4,z=5;,则下面表达式中值为0的是(D)。
(A)x&&y (B)x<=y(C)x||y+z&&y-z (D)!((x<y)&&!z||1))< p="">8.位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于(A)。
(A)操作数乘以2 (B)操作数除以2(C)操作数除以4 (D)操作数乘以49.下面程序运行后,变量m的值为(C)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计实验与习题指导同步自测答案2、1、3 同步自测一、选择题1、D2、C3、D4、C5、A6、B7、D8、C二、填空题1、①c ②exe2、①main3、①函数说明部分②函数体4、①主或main ②主或main5、①;2、2、3 同步自测一、选择题1、B2、D3、C4、C5、C6、B7、D8、A9、C 10、B 11、D 12、D 13、D 14、C 15、C 16、D 17、C 18、C 19、B 20、A 21、D 22、A 23、D 24、C 25、D 26、B 27、B 28、D 29、D 30、C 31、A 32、B 33、D 34、B 35、C2、3、3 同步自测一、选择题1、B2、C3、D4、A5、B6、A7、A8、A9、D 10、B2、4、3 同步自测一、选择题1、B2、A3、B4、C5、B6、D7、C8、A9、D 10、B二.编程题1、#include<stdio、h>void main(){int x,y;printf("请输入自变量x的值: ");scanf("%d",&x);if(x<0) y=3*x+1;else if(x<5) y=2*x;else y=x+2;printf("\n函数y的值为: %d",y);}2、#include<stdio、h>void main(){int a,b,c,d,t;printf("请输入四个整数:\n");scanf("%d%d%d%d",&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);}2、5、3 同步自测一、选择题1、C2、C3、D4、D5、D6、C7、D8、B9、A 10、B11、B 12、B 13、B 14、B 15、C二、填空题1、①getchar()2、①n++3、①′\n′②num++;4、①n<=m ②total=total+sum5、①(i/100)*(i/100)*(i/100)+((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%10)*(i%10)*(i%10)②g==i6、①107、①i%j==08、①b9、①y=1 ②x%i==0 10、①2*x+4*y==90三.读程序写结果题1、 8,172、 57233、 4四.编程题1、main(){int x,y,a,b;for(x=100;x<1000;x++){y=0;a=x;while(a){ y=y*10+a%10;a=a/10;}if(x+y==1333)printf("a=%d;b=%d;c=%d\n",x/100,(x/10)%10,x%10);}}2、main(){long x,y/* 存放x */,n/* 记录x的位数 */,s/* 存放x*x */;long z /* 存放被取的顺序从右到左的相应部位数字 */,t/*十进制的权*/; for(x=1;x<=100;x++){y=x;n=0;z=0;t=1;while(y){n++; /* 记录x的位数 */y=y/10;}s=x*x;for(;n>0;n--){z+=(s%10)*t; /* 取相应部位数字 */t*=10;s=s/10;}if(x==z) printf("%-10ld",x);}}3、main(){int i;for(i=1;i<=100;i++)if((i+3)%5==0&&(i-3)%6==0){printf("%d",i);break;}}4、main(){int x,a,b,c;for(x=100;x<1000;x++){a=x/100;b=(x/10)%10;c=x%10;if(a*a*a+b*b*b+c*c*c==1099)printf("%-10d",x);} } 5、 main() {int x,a,b,c,count=0; for(x=100;x<1000;x++) {a=x/100; b=(x/10)%10; c=x%10;if(a+b+c==5) count++; }printf("共有%d 个其各位数字之与就是5的数字",count); }2、6、3 同步自测一、选择题1、B2、C3、D4、B5、A6、D7、D8、D9、D 10、B 11、B 12、A 13、D 14、D 15、B 16、B 17、A 18、A 19、B 20、A 21、A 22、D 23、D 24、A 25、A 二、填空题1、① fac(n-1)2、①a*a%8!=13、①a%b4、①i++5、①j!=0 或 j ② n%10+’0’6、① x>=’a ’&&x<=’z ’7、① x=n ②n%10 ③x 三、读程序写结果题1、 9,192、 f=63、5、 306、 -5,-12,-77、10,20,30 8、 !EDCBA 9、4321 10、 711、13、 5,25、 6 1、#include <stdio 、h> void delspace(char *s) { int i,j;for(i=0,j=0;s[i]!=’\0’;i++) if(s[i]!=’ ’) {s[j]=s[i];j++} s[j]=’\0’; }{ char *str;printf(“input string:”);gets(str);delspace(str);printf(“%s”,s tr);}3、#include <stdio、h>#include <math、h>void main(){int isprime(int x);int a;printf(“please input the number:\n”);scanf(“%d”,&a);if(isprime(a))printf(“the %d is a prime\n”,a);elseprintf(“the %d is not a prime\n”,a);}int isprime(int x){ int j;for(j=2;j<=sqrt(x);j++)if(x%j==0) return 0;return 1;}2、7、3 同步自测一、选择题1、C2、A3、C4、A5、D6、C7、C8、D9、B 10、B11、D 12、C 13、D 14、D 15、B二、填空题1、① k=p2、①a[i][j]<min3、① i+j==24、① continue5、①j=3 ② a[j-1][k-1]6、① x/10 或int(x/10)7、① !(s[i]>=’0’&&s[i]<=’9’)8、①a[n-i-1]=temp三、读程序写结果题1、 max=10,row=2,colum=12、 18,103、 countryside4、 xbcdBCD四、编程题1、参考程序及评分标准一:#include<stdio、h>#define N 5viod main(){ int a[N+1],x,i,k;for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&x); //2分for(i=0;a[i]<x&&i<N;i++); //3分for(k=N;k>i;k--)a[k]=a[k-1];a[i]=x; //3分for(i=0;i<=N;i++)printf("%5d",a[i]);putchar(‘\n’); //2分}参考程序及评分标准二:#include<stdio、h>#define N 5viod main(){ void insert(int v[],int n,int x);int a[N+1],x,i;for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&x); //2分insert(a,N,x); //2分for(i=0;i<=N;i++)printf("%5d",a[i]);putchar(‘\n’); //2分}void insert(int v[],int n,int x){int i,k;for(i=0;v[i]<x&&i<n;i++); //2分for(k=N;k>i;k--)v[k]=v[k-1];v[i]=x; //2分}3、#include <stdio、h>#include <string、h>void main(){void copystr(char *p1,char *p2,int m);scanf(“%s”,str1);scanf(“%d”,&m);if(strlen(str1)<m)printf(“input error”);else{ copystr(str1,str2,m);printf(“the result is :%s”,str2);}}void copystr(char *p1,char *p2,int m){ int n=0;while(n<m-1){n++; p1++;}while(*p1!=’\0’){*p2=*p1;p1++;p2++;}*p2=’\0’;}2、9、3 同步自测一、选择题1、 2、 3、 4、 5、 6、 7、 8、 9、 10、11、 12、 13、 14、 15、。