C语言程序设计习题与上机实验
(参)
2008年3月30
日第一部分 同步习题集 第1章 C语言概述
一、判断题
1、正确2、正确3、错误4、错误 二、单项选择题 1、B 2、B 三、填空题 1、 /* */
3、A
4、A
5、D
6、C
7、D
8、C
2、函数首部、函数体
第2章 算法
一、
填空题
1、算法 2、算法、数据结构3、自然语言、N-S结构图、伪代码
4、顺序结构、选择结构、循环结构 5、程序设计风格、程序结构、清晰的结构
第3章 数据类型\\运算符与表达式
一、单项选择题 1、D
2、D
3、D 13、B
4、D 14、C
5、B 15、C
6、AB 7、D 16、B
17、C
8、D
9、C
10、A
11、D 12、C 二、填空题
1、2;-32768~72767;4;4 2、1.0/2*(a*x+(a+x)/(4.0*a))
第4章 最简单的C程序设计
一、单项选择题 1、B 2、B 二、填空题 1、; 2、{} 三、写结果题 1、a
3、D 3、%
4、C
5、A
6、D
7、D
4、输入输出函数
2、6,5 3、-6 4、11空格10
5、ch:dec=97;oct=141,hex=61,ASCII=a
6、修改题…printf(“%d,%d,%d,%d\\n”,++i, j--, i++, --j); 结果为:7,4,5,4 四、程序填空题 1、%c 2、%.2f
3、(1) &x,&y (2) printf(“%d,%d”,x,y);
第5章 逻辑运算和判断选择结构
一、单项选择题 1、C 2、A 3、D 11、C 12、C 二、写运行结果题 1、100 2、6 三、程序填空题 1、(1) x>y (2) u>z
4、D
5、B
6、D
7、B
8、B
9、C
10、D
3、2
4、a=2,b=1
2、(1)m= =‟c‟ (2) m= =‟b‟
3、(1)ch>=‟A‟ &&ch<=‟Z‟ (2) ch=ch-32 4、(1)x>2 && x<=10 (2) x>-1 && x<=2 四、编程题 1、
#include { int a, b, t; } 2、编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为‘+’,‘-’,‘*’,‘/’(用switch语句实现)。 #include { float data1, data2, result; char op; printf(“Please input express (data1 op data2) : ”); scanf(“%f%c%f”, &data1, &op, &data2); switch (op) { case „+‟: result = data1 + data2; break; case „-‟: result = data1 - data2; break; + - op= =? * / int data1,data2,y; char op; printf(“Please input a,b:”); scanf(“%d,%d”, &a, &b); t = a; a = b; b = t; printf(“a=%d,b=%d”, a, b); 给data1, op ,data2赋值 case „*‟: result = data1 * data2; break; y= y= case „/‟: result = data1 / data2; break; data1+data2 data1-data2 default: printf(“Input error!”); exit(0); } Printf(“%g%c%g=%g”,data1, op, data2, result); y= y= data1*data2 data1/data2 输出结果 } 3、试编程判断输入的正数是否既是5又是7的倍数。若是,则输出yes,否则输出no。 #include printf(“Please input x”); scanf(“%d”, &x); if(x >=0) if(x %5= =0&& x %7= =0) printf(\"yes\"); else printf(\"no\"); else printf(“Input data error!”); } 4、 #include float x, y ; printf(“Please input x:”); scanf(“%f”, &x); if (x < 1) y = x; else if (x < 10) } 5、 #include char grade ; float score; printf(“POlease input grade:”); scanf(“%c”, &grade); switch (grade) { case „A‟: case „a‟: score = 95;break; case „B‟: case „b‟: score = 85;break; case „C‟: case „c‟: score = 75;break; case „D‟: case „d‟: score = 65;break; case „E‟: case „e‟: score = 50;break; y = 2 * x - 11; else y = 3 * x -11; printf (“y=%g”, y); default: printf(“Input error!”); exit(0); } printf (“score=%f”, score); 第6章 循环结构 一、判断题 1、错误 2、正确 3、正确 4、错误 5、正确 二、单项选择题 1、A 2、C 11、C 12、B 三、写结果题 1、8,20 7、6 3、A 13、C 4、D 5、B 14、AC 6、B 7、A 8、D 9、A 10、D 10、2,3 四、程序填空题 2、2581114 3、8 8、a=41 9、 * # 4、8 5、a=16 y=60 6、74 1、①c!=‟#‟ ②c>=‟0‟ && c<=‟9‟ 3、①i<10 ②10*i+5 五、编程题 1、 #include 2、①t=t*i 4、①i float max, min, score, average; int i; printf(“Please input score:”); scanf(“%f”, &score); max = min = average = score; for ( i=1; i <= 34; i++) { printf(“Please input score:”); scanf(“%f”, &score); if (score < min ) min =score; if (score > max ) max =score; average + = score; } average /= 35.0; printf(“max=%g,min=%g,average=%g”, max,. min, average); } 2、 #include int a, b, r, temp; printf(“Please input a,b”); scanf(“%d,%d”, &a, &b); while ( a<=0 || b<=0) { printf(“Try again: ”); scanf(“%d,%d”, &a, &b); } if (a < b) { r = a; a = b; b = r;} temp = a * b; while (b != 0) { r = a % b; a = b ; b = r; } printf(“最大公约数=%d, 最小公倍数=%d”, a , temp / a); } 第7章 数组 一、单项选择题 1、C 2、D 3、C 4、C 5、C 6、C 11、C 12、B 13、C 14、D 15、A 二、写结果题 1、3 2、he 3、AHaMA 4、How does she 三、程序填空题 1、①a[9]=x ②i<9 2、①k=i ② k != i 4、①strlen(t) ② t[k] = = c 四、编程题 1、 #include 7、D 8、D 9、C 10、B 5、 FGH KL 3、① x !=0 ② t+‟0‟ 5、①b[j]!=‟\\0‟ ② a[i]=‟\\0‟ main( ) { int a[N], temp, i; for (i = 0 ; i < N; i++) { printf(“Please input NO %d:”, i+1); scanf(“%d”, &a[i]); } for (i = 0 ; i <= N/2 -1; i++) { temp = a[i];a[i]=a[N-i-1];a[N-i-1]=temp; } for (i = 0 ; i < N; i++) printf(“%3d”, a[i]); } 2、输出杨辉三角形前十行。 #include int a[N][N]; int i, j; for (i = 0 ; i < N; i++) { } for (i = 1 ; i < N; i++) for (j = 1 ; j <= i; j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for (i = 0 ; i < N; i++) { a[i][i] = 1; a[i][0] = 1; for (j = 0 ; j <= i; j++) printf(“%5d”, a[i][j]); printf(”\\n”); } } 第8章 函数 一、单项选择题 1、D中加一句z=x+y; 2、选D(题不严密) 7、B 8、A 二、写结果题 1、8 2、4 9、B i=5 3、 i=2 i=2 i=4 i=2 10、D 11、A 3、D 12、A 4、A 13、B 5、B 6、D 14、CD 15、A 4、5 三、程序填空题 1、①float fun(float a, float b); 或float fun(float , float ); ②x+y, x-y ③z+y, z-y 2、①i <= 10 ② array[i-1] ③ return avgr 3、①j=num-1 ② array[i]< array[i+1] 4、①t*i ② s+factor(k) 5、① l>h ② s, l+1, h-1 四、编程题 1、 int prime(int x) { int i; int flag=1; for(i=2;i printf(“Please input x:”); scanf(“%d”, &x); y=prime(x); if (y==1) printf(\"%d is prime!\ else printf(\"%d is not prime!\} 2、 #include char datastring[10]; long data; printf(“Please input data string:”); scanf(“%s”, datastring); data=fun(datastring); printf(\"output number\\n\"); printf(\"%ld\ } long fun(char str[]) { int i; long data; data=0; for(i=0;str[i]!='\\0';i++) data=data*10+(str[i]-'0'); return data; } 第9章 编译预处理 一、单项选择题 1、C 2、B 二、判断题 3、D 4、D 5、B 6、B 7、D 8、D 1、错误2、正确3、正确4、正确5、错误6、正确 三、编程题 1、求面积 #include #include #define S(a,b,c) (( (a)+(b)+(c) ) /2.0 ) #define AREA(a,b,c) sqrt(S(a,b,c)*( S(a,b,c)-a) *( S(a,b,c)-b) *( S(a,b,c)-c)) main( ) { } double a, b, c, area; printf(“Please input a,b,c:”); scanf(“%lf, %lf, %lf”, &a, &b, &c); area=AREA(a,b,c); printf(“area=%lg”,area); 第10章 指针 一、单项选择题 1、B 2、B 3、D(??) 4、D 5、B 6、C 7、D 8、B 17、A 18、D 9、CD 10、D 11、B 12、C 13、D 14、D 15、C 16、B 二、写结果题 3 5 1、19 2、60 3、 5 3 4、49 5、GOOGLE 6、-2 7、Excute right! 8、xyzabc 三、程序填空题 9、4321 1、①*max=i ②a,7, &max, &min 2、①*p!=‟\\0‟ ② *p-„0‟ ③ j--> 0 3、①s+n-1或 p1+n-1 ②p2-- 4、①s1++②*s2③s1=p或puts(p)或return 5、①*q ②str[k]或*(str+k) 四、编程题 1、 #include int t; t= *p1;*p1=*p2;*p2=t; } main() { int a, b; printf(“Please input a,b:”); scanf(“%d,%d”, &a, &b); swap(&a,&b); printf(“a=%d,b=%d”,a,b); } 2、 #include char *s=p; while(*p) p++; return p-s; } main() { char str[81]; printf(“Please input string:”); gets(str); printf(“length=%d”,strlength(str)); } 第11章 结构体和共用体 一、单项选择题 1、A 2、A 3、D 4、D 5、A 6、D 7、D 8、D 11、B 12、C 13、A(不严密) 二、写结果题 1、Zhao 2、7,3 3、9 三、程序填空题 1、①p->link ②p!=NULL或p 四、编程题 1、 #include long num; char name[20]; float score[3]; }; void input(struct student w[], int n); void output(struct student w[], int n); main() { struct student st[N]; int n; printf(\"Please input the number of worker(<10):\"); scanf(\"%d\ input(st, n); output(st, n); } void input(struct student w[], int n) { int i, j; 9、C 10、B float temp; for(i=0;i printf(\"Please input NO %d\\n\ printf(\"Num:\"); scanf(\"%ld\getchar(); printf(\"name:\"); gets(w[i].name); for (j=0; j < 3; j++) { printf(“Score[%d]=”, j); scanf(\"%f\ w[i].score[j] = temp; } } } void output(struct { int i, j; for(i=0;i printf(\"%g \ } } student w[], int n) 第12章 位运算 一、单项选择题 1、C 2、B 二、写结果题 1、108,-2 3、D 4、B 5、0x13(无答案) x=11 y=17 z=11 6、A 7、A 8、B 2、0 3、a= 4、 第13章 文件 一、单项选择题 1、A 2、D 3、B 二、程序填空题 4、B 5、A 6、A 7、C 8、C 9、A 10、D 1、①fgetc(fp) ②count++ 2、①fname 3、①EOF ②ch, stdout 4、①f2=fopen(argv[2] ②fgetc(f1),f2 5、① ”stu_list”, ”wb” ②&stud[i],sizeof(struct student_type),1 三、编程题 1、 #include FILE *fp; char str[255]; int i ; if ((fp=fopen(“d:\\\est.txt”,”r”))==NULL) { } printf(“Open error!”); exit(0); for (i=1;i<=7;i++) { } fclose(fp); } 2、 #include FILE *fp1,*fp2; if(argc!=3) { printf(\"you forgot to enter a filename\\n\"); exit(0); } if ((fp1=fopen(argv[1],”r”))==NULL) { } if ((fp2=fopen(argv[2],”a”))==NULL) { printf(“Open argument2 file error!”); exit(0); printf(“Open argument1 file error!”); exit(0); fgets(str,255,fp); printf(“%s\\n”, str); } while (!feof(fp1)) fputc(fgetc(fp1),fp2); fclose(fp1); fclose(fp2); } 3、将指定的文本文件中的小写字母改为大写字母。 #include { } 4、将100~200之间的素数保存到A盘根目录的“test.txt”文本文件中。(每行存5个数,每个数占10列) include FILE *fp; char str[255]; int i, j, count; ; if ((fp=fopen(\"a:\\\est.txt\{ } printf(\"Open error!\"); exit(0); FILE *fp; char filename[81]; char ch; long pos; printf(\"Please input filename:\"); gets(filename); if ((fp=fopen(filename,\"r+\"))==NULL) { } printf(\"Open error!\"); exit(0); pos=0; while (!feof(fp)) { fseek(fp,pos,0); ch=fgetc(fp); if (ch>='a' && ch<='z') { } ch = ch -32; fseek(fp,pos,0); fputc(ch,fp); pos++; } fclose(fp); count = 0; for ( i = 100;i<=200; i++) { for(j = 2; j <= i-1; j++) if (i % j == 0) break; if (j == i ) } { count++; fprintf(fp,\"%10d\if (count % 5 ==0 ) fprintf(fp,\"%c\ } } fclose(fp); 5、将平均成绩不及格的学生数据保存到A盘的根目录的文件“stud.dat”中。 #include long num; char name[20]; float score[3]; float average; }; void input(struct student w[], int n); void save(struct student w[], int n); main() { struct student st[N]; int n; printf(\"Please input the number of worker(<10):\"); scanf(\"%d\ input(st, n); save(st, n); } void input(struct student w[], int n) { int i, j; float temp; for(i=0;i scanf(\"%ld\ getchar(); printf(\"name:\"); gets(w[i].name); w[i].average = 0; for (j=0; j < 3; j++) { printf(\"Score[%d]=\ scanf(\"%f\ w[i].score[j] = temp; w[i].average= w[i].average+ w[i].score[j]; } w[i].average = w[i].average / 3.0; } } void save(struct student w[], int n) { FILE *fp; int i; if ((fp=fopen(\"a:\\\\stud.dat\ { printf(\"Open error!\"); exit(0); } for(i=0;i fclose(fp); } 第二部分 综合练习与提高 第3章 数据类型、运算符与表达式 一、单项选择题 1-5 CABCD 6-10 BDBBC 11 B 二、填空题 1、(3*a*e)/(b*c) 2、3.5 3、x*x*x*x*x*x-2*x*x*x*x*x+3*x*x*x*x+4*x*x*x-5*x*x+6*x+7 第4章 最简单的C程序设计 一、单项选择题 1-4 BCDB 二、填空题 1、a=3 b=7 8.5 71.82 A a 2、a=12345,b=-198.34□□□,c=□□6.5 (□表示空格) 3、a=2, b=-1 第5章 逻辑运算和判断选择结构 一、单项选择题 1-5 DACBA 6-10 DBBBA 11-14 DBCA 二、读程序写结果 1、0 2、1 0 3、2 4、a=-1 5、*& 三、程序填空题 1、x void main() { int n=0; float score=0, max, min, sum=0, average=0; printf(\"input NO.%d score: \ scanf(\"%f\ max=min=score; while( n<=3 ) {
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务