




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、c語言程序設(shè)計(jì)習(xí)題與上機(jī)實(shí)驗(yàn)(參考答案)2008年3月30日第一部分 同步習(xí)題集第1章 c語言概述一、判斷題1、正確2、正確3、錯(cuò)誤4、錯(cuò)誤二、單項(xiàng)選擇題 1、b2、b3、a4、a5、d6、c7、d8、c三、填空題1、 /* */2、函數(shù)首部、函數(shù)體第2章 算法一、 填空題1、算法2、算法、數(shù)據(jù)結(jié)構(gòu)3、自然語言、n-s結(jié)構(gòu)圖、偽代碼4、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) 5、程序設(shè)計(jì)風(fēng)格、程序結(jié)構(gòu)、清晰的結(jié)構(gòu)第3章 數(shù)據(jù)類型運(yùn)算符與表達(dá)式一、單項(xiàng)選擇題1、d2、d3、d4、d5、b6、ab7、d8、d9、c10、a11、d12、c13、b14、c15、c16、b17、c二、填空題1、2;-32768
2、72767;4;42、1.0/2*(a*x+(a+x)/(4.0*a)第4章 最簡單的c程序設(shè)計(jì)一、單項(xiàng)選擇題1、b2、b3、d4、c5、a6、d7、d二、填空題1、;2、3、%4、輸入輸出函數(shù)三、寫結(jié)果題1、a2、6,53、-6 4、11空格105、ch:dec=97;oct=141,hex=61,ascii=a6、修改題printf(“%d,%d,%d,%dn”,+i, j-, i+, -j); 結(jié)果為:7,4,5,4四、程序填空題1、%c2、%.2f3、(1) &x,&y (2) printf(“%d,%d”,x,y); 第5章 邏輯運(yùn)算和判斷選擇結(jié)構(gòu)一、單項(xiàng)選擇題1、c2、a3、d4、
3、d5、b6、d7、b8、b9、c10、d11、c12、c二、寫運(yùn)行結(jié)果題1、1002、63、24、a=2,b=1三、程序填空題1、(1) xy (2) uz 2、(1)m= =c (2) m= =b 3、(1)ch=a &ch2 & x-1 & x=2四、編程題1、#include main( ) int a, b, t; printf(“please input a,b:”); scanf(“%d,%d”, &a, &b); t = a; a = b; b = t; printf(“a=%d,b=%d”, a, b);2、編程實(shí)現(xiàn)以下功能:讀入兩個(gè)運(yùn)算數(shù)(data1和data2)及一個(gè)運(yùn)算符
4、(op),計(jì)算表達(dá)式data1 op data2的值,其中op可為+,-,*,/(用switch語句實(shí)現(xiàn))。#include int data1,data2,y; char op;給data1, op ,data2賦值op= =?y=data1+data2輸出結(jié)果y=data1-data2y=data1*data2y=data1/data2*/main( ) float data1, data2, result;char op;printf(“please input express (data1 op data2) : ”);scanf(“%f%c%f”, &data1, &op, &dat
5、a2);switch (op) case +: result = data1 + data2; break; case -: result = data1 - data2; break; case *: result = data1 * data2; break; case /: result = data1 / data2; break; default: printf(“input error!”); exit(0);printf(“%g%c%g=%g”,data1, op, data2, result);3、試編程判斷輸入的正數(shù)是否既是5又是7的倍數(shù)。若是,則輸出yes,否則輸出no。#
6、include main( ) int x ; 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 main( ) float x, y ; printf(“please input x:”);scanf(“%f”, &x);if (x 1)y = x;else if (x 10) y = 2 * x - 11; else y = 3 * x -11;pri
7、ntf (“y=%g”, y);5、#include main( ) 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;default: pr
8、intf(“input error!”); exit(0);printf (“score=%f”, score);第6章 循環(huán)結(jié)構(gòu)一、判斷題1、錯(cuò)誤2、正確3、正確4、錯(cuò)誤5、正確二、單項(xiàng)選擇題1、a2、c3、a4、d5、b6、b7、a8、d9、a10、d11、c12、b13、c14、ac三、寫結(jié)果題1、8,202、25811143、84、85、a=16 y=606、74*#7、68、a=419、10、2,3 四、程序填空題1、c!=#c=0 & c=92、t=t*it=-t/i3、i1010*i+54、ixx%i=05、inword=0inword=1五、編程題1、#include main
9、( )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 max ) max =score;average + = score;average /= 35.0;printf(“max=%g,min=%g,average=%g”, max,. min
10、, average);2、#include main( ) 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(“最大公約數(shù)=%d, 最小公倍數(shù)=%d”, a , temp / a);第7章 數(shù)組一、單項(xiàng)選擇題1、
11、c2、d3、c4、c5、c6、c7、d8、d9、c10、b11、c12、b13、c14、d15、afghkl二、寫結(jié)果題1、32、he3、ahama4、how does she5、三、程序填空題1、a9=x i92、k=i k != i3、 x !=0 t+04、strlen(t) tk = = c5、bj!=0 ai=0四、編程題1、#include #define n 10main( ) int an, temp, i;for (i = 0 ; i n; i+) printf(“please input no %d:”, i+1);scanf(“%d”, &ai);for (i = 0 ;
12、 i = n/2 -1; i+) temp = ai;ai=an-i-1;an-i-1=temp; for (i = 0 ; i n; i+) printf(“%3d”, ai);2、輸出楊輝三角形前十行。#include #define n 10main( )int ann;int i, j;for (i = 0 ; i n; i+)aii = 1;ai0 = 1;for (i = 1 ; i n; i+) for (j = 1 ; j = i; j+)aij=ai-1j-1+ai-1j;for (i = 0 ; i n; i+) for (j = 0 ; j = i; j+) printf
13、(“%5d”, aij); printf(”n”); 第8章 函數(shù)一、單項(xiàng)選擇題1、d中加一句z=x+y;2、選d(題不嚴(yán)密)3、d4、a5、b6、d7、b8、a9、b10、d11、a12、a13、b14、cd15、ai=5i=2i=2i=4i=2二、寫結(jié)果題1、82、43、4、5三、程序填空題1、float fun(float a, float b); 或float fun(float , float ); x+y, x-yz+y, z-y2、i = 10 arrayi-1 return avgr 3、j=num-1 arrayih s, l+1, h-1四、編程題1、int prime(i
14、nt x) int i; int flag=1; for(i=2;ix;i+) if (x%i =0) flag=0; break; return(flag);main() int x, y; printf(“please input x:”); scanf(“%d”, &x); y=prime(x); if (y=1) printf(%d is prime!, x); else printf(%d is not prime!, x);2、#include long fun(char str);main() char datastring10; long data;printf(“please
15、 input data string:”);scanf(“%s”, datastring); data=fun(datastring); printf(output numbern); printf(%ld, data); long fun(char str) int i; long data; data=0; for(i=0;stri!=0;i+) data=data*10+(stri-0); return data;第9章 編譯預(yù)處理一、單項(xiàng)選擇題1、c2、b3、d4、d5、b6、b7、d8、d二、判斷題1、錯(cuò)誤2、正確3、正確4、正確5、錯(cuò)誤6、正確三、編程題1、求面積#include
16、#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章 指針一、單項(xiàng)選擇題1、b2、b3、d(?)4、d5、b6、c7、d8、b
17、9、cd10、d 11、b12、c13、d14、d15、c16、b17、a18、d3 55 3二、寫結(jié)果題1、192、603、4、495、google6、-27、excute right!8、xyzabc9、4321三、程序填空題1、*max=i a,7, &max, &min 2、*p!=0 *p-0 j- 03、s+n-1或 p1+n-1 p2-4、s1+*s2s1=p或puts(p)或return5、*qstrk或*(str+k)四、編程題1、#include void swap(int *p1,int *p2) int t; t= *p1;*p1=*p2;*p2=t;main()int
18、 a, b;printf(“please input a,b:”);scanf(“%d,%d”, &a, &b);swap(&a,&b);printf(“a=%d,b=%d”,a,b);2、#include int strlength(char *p) char *s=p;while(*p) p+;return p-s;main()char str81;printf(“please input string:”);gets(str);printf(“l(fā)ength=%d”,strlength(str);第11章 結(jié)構(gòu)體和共用體一、單項(xiàng)選擇題1、a2、a3、d4、d5、a6、d7、d8、d9、c1
19、0、b11、b12、c13、a(不嚴(yán)密)二、寫結(jié)果題1、zhao2、7,33、9三、程序填空題1、p-link p!=null或p四、編程題1、#include #define n 5struct student long num; char name20; float score3;void input(struct student w, int n);void output(struct student w, int n);main() struct student stn; int n; printf(please input the number of worker(10):); sc
20、anf(%d, &n); input(st, n); output(st, n);void input(struct student w, int n)int i, j;float temp; for(i=0;in;i+) printf(please input no %dn, i+1); printf(num:); scanf(%ld,&wi.num); getchar(); printf(name:); gets(); for (j=0; j 3; j+) printf(“score%d=”, j); scanf(%f,& temp );wi.scorej = temp; v
21、oid output(struct student w, int n) int i, j; for(i=0;in;i+) printf(noutput no %dn,i+1); printf(num:); printf(%ld,wi.num); printf(nname:); puts(); printf(score:); for (j=0; j 3; j+) printf(%g , wi.scorej); 第12章 位運(yùn)算一、單項(xiàng)選擇題1、c2、b3、d4、b5、0x13(無答案)6、a7、a8、bx=11y=17z=11二、寫結(jié)果題1、108,-22、03、a=894、第13
22、章 文件一、單項(xiàng)選擇題1、a2、d3、b4、b5、a6、a7、c8、c9、a10、d二、程序填空題1、fgetc(fp) count+2、fname3、eof ch, stdout4、f2=fopen(argv2 fgetc(f1),f25、 ”stu_list”, ”wb” &studi,sizeof(struct student_type),1三、編程題1、#include main()file *fp;char str255;int i ;if (fp=fopen(“d:test.txt”,”r”)=null)printf(“open error!”);exit(0);for (i=1;
23、i=7;i+)fgets(str,255,fp);printf(“%sn”, str);fclose(fp);2、#include main(int argc , char *argv)file *fp1,*fp2;if(argc!=3) printf(you forgot to enter a filenamen); exit(0);if (fp1=fopen(argv1,”r”)=null)printf(“open argument1 file error!”);exit(0);if (fp2=fopen(argv2,”a”)=null)printf(“open argument2 fil
24、e error!”);exit(0);while (!feof(fp1)fputc(fgetc(fp1),fp2);fclose(fp1);fclose(fp2);3、將指定的文本文件中的小寫字母改為大寫字母。#include main()file *fp;char filename81;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,po
25、s,0);ch=fgetc(fp);if (ch=a & ch=z)ch = ch -32;fseek(fp,pos,0);fputc(ch,fp);pos+;fclose(fp); 4、將100200之間的素?cái)?shù)保存到a盤根目錄的“test.txt”文本文件中。(每行存5個(gè)數(shù),每個(gè)數(shù)占10列)include main()file *fp;char str255;int i, j, count; ;if (fp=fopen(a:test.txt,w)=null)printf(open error!);exit(0);count = 0;for ( i = 100;i=200; i+)for(j
26、= 2; j = i-1; j+)if (i % j = 0)break;if (j = i ) count+;fprintf(fp,%10d, i);if (count % 5 =0 )fprintf(fp,%c, n);fclose(fp);5、將平均成績不及格的學(xué)生數(shù)據(jù)保存到a盤的根目錄的文件“stud.dat”中。#include #define n 50struct student long num; char name20; float score3; float average;void input(struct student w, int n);void save(struc
27、t student w, int n);main() struct student stn; int n; printf(please input the number of worker(10):); scanf(%d, &n); input(st, n); save(st, n);void input(struct student w, int n) int i, j; float temp; for(i=0;in;i+) printf(please input no %dn, i+1); printf(num:); scanf(%ld,&wi.num); getchar(); print
28、f(name:); gets(); wi.average = 0; for (j=0; j 3; j+) printf(score%d=, j); scanf(%f,& temp ); wi.scorej = temp; wi.average= wi.average+ wi.scorej; wi.average = wi.average / 3.0; void save(struct student w, int n) file *fp; int i; if (fp=fopen(a:stud.dat,wb)=null) printf(open error!); exit(0);
29、for(i=0;in;i+) if (wi.average 60) fwrite(&wi,sizeof(struct student),1,fp); fclose(fp);第二部分 綜合練習(xí)與提高第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式一、單項(xiàng)選擇題1-5 cabcd6-10 bdbbc11 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程序設(shè)計(jì)一、單項(xiàng)選擇題1-4 bcdb二、填空題1、a=3 b=78.5 71.82a a2、a=12345,b=-198.34,c
30、=6.5 (表示空格) 3、a=2, b=-1 4、3 3第5章 邏輯運(yùn)算和判斷選擇結(jié)構(gòu)一、單項(xiàng)選擇題1-5 dacba 6-10 dbbba11-14 dbca二、讀程序?qū)懡Y(jié)果1、02、1 03、24、a=-15、*&三、程序填空題1、x z xy 2、cd b2&x-1&x-a & xa 5、a= =0 disc06、(y%4= =0)&(y%100!=0) f=07、x0 x/10 x40四、編程題1、 # includevoid main() int n=0; float score=0, max, min, sum=0, average=0; printf(input no.%d s
31、core: , +n); scanf(%f,&score); max=min=score; while( nmax) max=score; if(scoremin) min=score; sum+=score; printf(input no.%d score: , n+); scanf(%f, &score); average=sum/3; printf(max=%.1f, min=%.1f, average=%.1fn, max, min, average);2、教材p98 例5.23、4 教材p111112 習(xí)題5.6 5.7第6章 循環(huán)控制一、判斷題1-5 二、單項(xiàng)選擇題1-5 dcc
32、dd 6-10 aabba11-13 ccb三、讀程序?qū)懡Y(jié)果1、y=-12、m=13、364、a=-55、1.6000006、87、*#*#*#$8、89、8,-210、411、1四、程序填空題1、a!=0或a 2、i=1, m=0 a%i= =03、100-5*i-j*2 l%5= =04、i%3= =2& i%5= =3& i%7= =2 j=j+15、n/10-i*10 n= =i*i*i+j*j*j+k*k*k 6、m%n n w五、編程題1、 # includevoid main( ) int i, a=0, b=0, c=0, d=0, e=0; char grade;for(i=
33、1; i=30; i+) printf(“input no.%d grade: ”, i);scanf(%c ,&grade); switch(grade) case a: a+;break; case b: b+;break; case c: c+;break; case d: d+;break;case e: e+; printf(a=%c b=%c c=%c d=%c e=%c n, a, b, c, d, e);2、 #include#includevoid main() int m,k,i,n=0; for(m=1;m=100;m+) k=sqrt(m); for(i=2;i=k+1
34、) printf(%6d,m); /*每個(gè)數(shù)占6個(gè)字符的寬度*/n=n+1; if(n%5= =0) printf(n); /*每5個(gè)數(shù)就換一行*/ printf(n);第7章 數(shù)組一、單項(xiàng)選擇題1-5 bdbdb 6-10 dcadb11-15 cddd二、讀程序?qū)懡Y(jié)果1、aabcd2、fi3、count0=6, count1=114、gdabc5、lblmnp6、7078 9198三、程序填空題1、 m9 i = 0 2、&numijnumij!= numji3、完整程序如下#include void main() int a32=2,10,9,4,5,119,b22=-1,-2,-3,-
35、4; int i,j,k,s,c32; for(i=0;i3;i+) for(j=0;j2;j+) s=0; for(k=0;k2;k+) s+=aik*bkj; cij=s; for(i=0;i3;i+) for(j=0;j2;j+) printf(%6d,cij); printf(n); 4、完整程序如下main() int a10=191,3,6,4,11,7,25,13,89,10;int i,j,k;for(i=0;i=0&kaj) aj+1=aj;j-;aj+1=k;for(i=0;i10;i+) printf(%d ,ai);5、50 c= = tk四、編程題1、#include
36、void main() char s180,s240; int i=0,j=0,n=-1,result; char c; printf(input s1:); gets(s1); printf(以下為求s1的長度n); while(s1i!=0) i+; printf(s1長度為:%dnn,i); printf(以下為將s1賦值給s2n); i=0; while(s1i!=0) s2i=s1i; i+; s2i=0; puts(s2); printf(n); printf(以下為連接s1和s2n); i=0; printf(input s1:); gets(s1); printf(input
37、s2:); gets(s2); while(s1i!=0) i+; while(s2j!=0) s1i+=s2j+; s1i=0; puts(s1); printf(n); printf(以下為在s1中搜索字符n); i=0; printf(input s1:); gets(s1); printf(input a charactor:); c=getchar(); getchar(); while(s1i!=0) if(s1i=c) n=i; break; i+; printf(字符在字符串中的下標(biāo)位置為:%dnn,n); printf(以下為比較兩個(gè)字符串n); i=0; printf(in
38、put s1:); gets(s1); printf(input s2:); gets(s2); while(s1i=s2i)&(s1i!=0) i+; if(s1i=0&s2i=0) result=0; else result=s1i-s2i; printf(result=%dn,result);第8章 函數(shù)一、bbaba cbcda d二、1. 0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 182. -125=-5*5*53. 4 34. 3 5 7 1 5 95. 8,17三、1. p+ ai-1=ai;2.(a%i=0)&(b%i=0) (
39、m*n)/max3. n+ flag=-14. x2=mid x1=mid5.ch=# c=#第9章 編譯預(yù)處理一、abaab bbacb二、第10章 指針一、addbd acbdd dcdbb dcdcb dcdad abcbd acdbcc二、1. edcba 2. 7 3. 5, 4 4, 54. 80,-205. baaaaa6. c7. 38. 9,69. this is a book10. 98765432111. tcilisilict12. bad三、1. stri!=0 j=i k+12. a i%10*10+i3. a*pk=ai4. while(*s+=*t+) *t=0
40、5. str sp=sp+i 第11章 結(jié)構(gòu)體與共用體一、 cdddb cc二、 name=zhangping,old=20第12章 位運(yùn)算一、 cbcbb第13章 文件一、 cada二、1. fname fp2. if(strcmp(str,string)=0) fopen(argv1,”r”)3. *+argv,”r”fgets(s,buffsize,fg)4. char *argvc=fgets(fp)5. char *argv!feof(fp1)6. hello7. fp=fopen(“data.txt”,”r”)=null ch-a 第三部分 上機(jī)實(shí)驗(yàn)與指導(dǎo)(答案)實(shí)驗(yàn)三 選擇結(jié)構(gòu)程
41、序設(shè)計(jì)1、main()float score;char grade;printf(“please input a student score:”);scanf(“%f”, &score);while(score100 | score0)printf(“ninput error, try again!”);scanf(“%f”, &score);switch ( (int)(score/10) )case 10: case 9: grade=a; break;case 8: grade=b; break;case 7: grade=c; break;case 6: grade=d; break;
42、case 5:case 4:case 3:case 2:case 1:case 0: grade=e;printf(“score is %5.1f, score grade is %c.n”, score, grade);2、#include main( ) float x, y ; printf(“please input x:”);scanf(“%f”, &x);if (x 0)y = 0;else if (x 10) y = x ; else if ( x 20 )y = 10;else if ( x 40)y = 0.5 * x + 20;else printf(“input error!”); exit (0);printf (“y=%g”, y);3、include void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民合作社對(duì)外合作與交流手冊(cè)
- 2025年江蘇省安全員《A證》考試題庫
- 農(nóng)田交易合同范例
- 印刷裝加工合同范本
- 2025年河南省建筑安全員A證考試題庫及答案
- 2025山西省安全員C證考試(專職安全員)題庫及答案
- 傳媒公司錄用合同范本
- 住宅樓外立面亮化施工方案
- 三年級(jí)口算題目大全集1000道
- 公司房屋拍賣合同范本
- Unit5 What day is it today?(教學(xué)設(shè)計(jì))-2023-2024學(xué)年教科版(廣州)英語四年級(jí)下冊(cè)
- 影視制作項(xiàng)目委托制作協(xié)議
- 廣東2024年12月佛山市教育局公開選調(diào)1名公務(wù)員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 植物角創(chuàng)設(shè)培訓(xùn)
- 法院生活費(fèi)申請(qǐng)書
- 2025年益陽醫(yī)學(xué)高等??茖W(xué)校高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年湖南工藝美術(shù)職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)教案
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 新版人音版小學(xué)音樂一年級(jí)下冊(cè)全冊(cè)教案
- 2024年黑龍江建筑職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫全面
評(píng)論
0/150
提交評(píng)論