习题1 .................................................................................................................................................................... 3
1-1 填空题.................................................................................................................................................... 3 1-2 思考题.................................................................................................................................................... 3 1-3 编程题.................................................................................................................................................... 3 习题2 .................................................................................................................................................................... 4 2-1 单选题.................................................................................................................................................... 4 2-2 思考题.................................................................................................................................................... 4
习题3.................................................................................................................................................................... 5 3-1 选择题 ..................................................................................................................................................... 5 3-2 填空题 ..................................................................................................................................................... 5 3-3 编程题 ..................................................................................................................................................... 5 习题4.................................................................................................................................................................... 7
4-1单选题 ..................................................................................................................................................... 7 4-2填空题 ..................................................................................................................................................... 7 4-3 编程题.................................................................................................................................................... 7
习题5.................................................................................................................................................................. 10
5-1单选题 ................................................................................................................................................... 10 5-2填空题 ................................................................................................................................................... 10 5-3 编程题.................................................................................................................................................. 10 习题6.................................................................................................................................................................. 13 6-1单选题 ................................................................................................................................................... 13 6-2填空题 ................................................................................................................................................... 13 6-3 编程题.................................................................................................................................................. 13
习题7.................................................................................................................................................................. 15
7-1单选题 ................................................................................................................................................... 15 7-2填空题 ................................................................................................................................................... 15 7-3 编程题.................................................................................................................................................. 15
习题8.................................................................................................................................................................. 16
8-1单选题 ................................................................................................................................................... 16 8-2填空题 ................................................................................................................................................... 16 8-3 编程题.................................................................................................................................................. 16
习题9.................................................................................................................................................................. 18
9-1单选题 ................................................................................................................................................... 18 9-2填空题 ................................................................................................................................................... 18 9-3 编程题.................................................................................................................................................. 18
习题10 ............................................................................................................................................................... 22
10-1单选题 ................................................................................................................................................ 22 10-2填空题 ................................................................................................................................................ 22 10-3 编程题 ............................................................................................................................................... 22 习题11 ............................................................................................................................................................... 24 11-1单选题 ................................................................................................................................................ 24 11-2填空题 ................................................................................................................................................ 24
习题12 ............................................................................................................................................................... 25
12-1单选题 ................................................................................................................................................ 25
12-2 填空题 ............................................................................................................................................... 25 实验篇 ................................................................................................................................................................. 26 实验1 熟悉Visual C++6.0可视化集成开发环境 ...................................................................... 26 实验2 顺序结构程序设计 ...................................................................................................................... 26 实验3 选择结构程序设计 ...................................................................................................................... 26 实验4 循环结构程序设计 ...................................................................................................................... 26 实验5 函数 ................................................................................................................................................. 28 实验6 数组 ................................................................................................................................................. 32 实验7 指针 ................................................................................................................................................. 33 实验8 结构体和共用体........................................................................................................................... 35 实验9 文件 ................................................................................................................................................. 36 实验10 综合编程 ..................................................................................................................................... 36
模拟试卷(一)参考答案.............................................................................................................................. 37 模拟试卷(二)参考答案.............................................................................................................................. 38
习题1
1-1 填空题
1. 函数
2. 主函数main(),主函数main() 3. 主函数main() 4. 函数首部,函数体
5. {, } 6. /*, */
7. 顺序结构,选择结构,循环结构 8. .c, .obj, .exe
1-2 思考题
1. 结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。
2. 算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法
3. 语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
1-3 编程题
1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include \"stdio.h\" main() { float a, b, h, s;
a=10; b=20;
h=5; s=(a+b)*h/2; printf(\"s=%f\\n\" , s ); }
2. 编写程序显示如图1.11所示信息。
图1.11 显示信息
#include \"stdio.h\" main()
{ printf(\"******************************\\n\");
printf(\"* hello world *\\n\");
printf(\"******************************\\n\"); }
习题2
2-1 单选题
1~5 DBDCA
6~10 DCABA
11~12 CA
2-2 思考题
1.2.000000
2.1,0.5 3.9,2 4.6
5.100,d
6.(1)20 (2)0 (3)60
7. (1)10,6,4 (2)6,9,15 8. 55
(3)3,60,83 习题3
3-1 选择题
1-5 BDABC 6-10 ADCAC 11-12 BB
3-2 填空题
1. 3 2. 0261 3. 0x10
4. 2, 1 互换a,b的值 5. 6.6 6. –003
8. 7
7. 5.0,4,c=3 (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432 (6) 5.864000e+002 (7) 3.141600e+000 (8) 3.1416 (9) 8765 (10) 3.1416,8765.43 10. a=2 b=5x=8.8 y=76.34c1=65 c2=97 3-3 编程题 1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式输出。 x y 十进制数 10 8 八进制数 12 10 十六进制数 a 8 #include \"stdio.h\" main() { int x, y ; scanf(\"%d%d\" , &x, &y); printf(\" x y\\n\"); printf(\"%4d%4d\\n\ printf(\"%4o%4o\\n\ printf(\"%4x%4x\\n\ } 2. 编写一个程序,输入一个大写英文字符('B'~'Y'),输出它的前导字符、该字符本身及其后续字符。 #include \"stdio.h\" main() { char c; scanf(“%c”, &c ); printf(“%c, %c, %c\\n”, c-1, c, c+1 ); } 3. 编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。编写程序并给出相应的程序流程图。 #include \"stdio.h\" main() { int a, a1, a2, a3; scanf(“%d”, &a ); a1=a%10 ; a=a/10; a2=a%10; a=a/10; a3=a%10; printf(“%d%d%d\\n”, a1, a2, a3); } 4. 编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。 #include \"stdio.h\" main() { double a, b, c, ave; scanf(“%lf%lf%lf”, &a, &b, &c ); ave=(a+b+c)/3 ; printf(“%.1lf\\n”, ave); } 5. 编写程序,读入3个整数给变量a、b、c,然后交换它们的值,把a原来的值给b,把b原来的值给c,把c原来的值给a。 #include \"stdio.h\" main() { int a, b, c, t; scanf(“%d%d%d”, &a, &b, &c ); t=a; a=c; c=b ; b=t ; printf(“a=%d, b=%d, c=%d\\n”, a, b, c ); } 习题4 4-1单选题 1~5 AADAD 6~10 ACB BB 11~12BA 4-2填空题 1. 1 2. (1) a>0 || b>0 (2) x>0 && x<=10 (3) a==1.5 && b==1.5 && c==1.5 (4)p(3)1 (4)0 (5)1 4. (max=a>b?a:b)>c?max:c 5.-4 6.1 7.5,0,3 8. (1) (a==0) (2) (b==0) (3) (disc<0) 4-3 编程题 1.输入3个实型数值a、b、c,如果能用它们作为三角形的3条边形成一个三角形,则输出三角形的面积,并画出实现该算法的N-S流程图并编程实现。 #include \"stdio.h\" #include “math.h” main() { float a,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); if (a+b>c && a+c>b && b+c>a) { s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“%f”,area); } } 2222 2.输入整数x、y,若x+y>1000,则输出x+y百位以上的数字,否则输出两数之和。 #include \"stdio.h\" main() { int x,y; scanf(“%d,%d”,&x,&y); if (x*x+y*y>1000) printf(“%d\\n”,(x*x+y*y)/100); else printf(“%d\\n”,x+y); } 3. 输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。 #include \"stdio.h\" main() { int x, scanf(“%d”,&x); if(x%3==0 && x%5==0 && x%7==0) printf(“yes\\n”); else printf(“no\\n”); } 4.对任意输入的x,用下式计算并输出y的值。 x2sin(x),xy2x,2xx1,x22≤x≤2 x2#include \"stdio.h\" #include “math.h” main() { float x,y; scanf(“%f”,&x); if(x<-2) y=x*x-sin(x); else if (x<=2) y=pow(2,x)+1; else y=sqrt(x*x+x+1); printf(“%f\\n”,y); } 5. 编写程序输入一个5位整数,判断它是不是回文数。回文数是指一个数从右到左和从左到右的对应数码相同,如12321是回文数,个位与万位相同,十位与千位相同。 #include \"stdio.h\" main( ) {long ge,shi,qian,wan,x; scanf(\"%ld\wan=x/10000; qian=x%10000/1000; shi=x%100/10; ge=x%10; if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf(\"this number is a huiwen\\n\"); else printf(\"this number is not a huiwen\\n\"); } 6. 编写程序用于计算某运输公司的运费。设每公里每吨货物的基本运费为p,货物重量为w,路程为s(单位为km),折扣为d,总费用计算公式为:f=p*w*s*(1d) 运费计算标准见表4.5。 表4.5 某运输公司运费计算标准 s<250 250<=s<500 500<=s<1000 1000<=s<2000 2000<=s<3000 s>3000 #include \"stdio.h\" main() {float p,w,s,d,f; scanf(“%f,%,%f”,p,s,w); if (s>3000) d=0.15 else if( s>=2000) d=0.1; else if(s>=1000) d=0.08; else if(s>=500) d=0.05; else if(s>=250) d=0.02; else d=0 f=p*w*s*(1-d); printf(“%f”,f); } 不 打 折 折扣2% 折扣5% 折扣8% 折扣10% 折扣15% 习题5 5-1单选题 1~5 CDABA 6~10 ABDDB 11~14 DBCB 5-2填空题 1.20 2.333 3.(1) i<10 (2) j%3!=0 4. (1) flag*(float)k/(k+1) (2) flag=-flag 5.(1) max=x (2) x!=-1 (3) scanf(\"%d\ 5-3 编程题 1. 用3种循环语句编写程序实现下列算式: (1)1+22+33+„+100100 (2)e= 11!12!13!… 1n!… ,当最后一项的值小于106时为止。 (1) #include \"stdio.h\" main() { int i; lont s=0; for(i=1;i<=100;i++) s+=i*i; printf(“%ld”,s); } (2) #include \"stdio.h\" main() { int i=1; lont p=1;float s=0; do{ s+=1.0/p; p*=++i; }while(1.0/p>1e-6) printf(“%f”,s); } 2. 编写程序求两个正整数的最大公约数。 #include \"stdio.h\" main() {int m,n,t,a,b; scanf(“%d,%d” ,&m,&n) ; if (m { m=n ; n=t ;t=m%n;} printf(”%d,%d”,n,a*b/n); } 3. 编写程序求一个整数的任意次方的最后3位数,即求xy的最后3位数。 #include \"stdio.h\" main() {int x,y,s=1; scanf(”%d,%d ”,&x,&y) ; for( ;y>0 ;y--)s*=x ; printf(”%d,%d,%d\\n ”,s%10,s/10%10,s/100%10); } 4. 百鸡问题。用100元钱买100只鸡,其中,公鸡每只5元,母鸡每只3元,小鸡每3只1元。编写程序输出各种买法。 #include \"stdio.h\" main() { int x,y,z; for( x=1 ; x<20 ;x++) for( y=1 ;y<33 ;y++) { z=100-x-y ; if (z>=0 && (5*x+3*y+z/3)-100<1e-5) printf(”x=%d,y=%d,z=%d\\n”,x,y,z) ; } } 5. 编写程序分别打印如下图形: * * * * * * * * * * * * * * * * (a) (a) #include \"stdio.h\" main() {int j,k ; for( j=1 ;j<=4 ;j++) {for(k=1;k<=4-j;k++)printf(\" \"); printf(\"****\") ; printf(\"\\n\") ; } } * *** ***** ******** (b) (b) #include \"stdio.h\" main() {int j,k ; for( j=1 ;j<=4 ;j++) } 6. 请编写程序求100~999之间所有的水仙花数。水仙花数的含义是指这样的一个3位数,其各位数字的立方和等于该数本身。例如,371=3+7+1,所以371是一个水仙花数。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 #include \"stdio.h\" main() { int i,j,k,n; printf(\"'water flower'number is:\"); for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf(\"%-5d\ } 3 3 3 {for(k=1;k<=4-j;k++)printf(\" \"); for(k=1 ;k<=2*j-1 ;k++) printf(\"*\") ; } printf(\"\\n\") ; } printf(\"\\n\"); } 习题6 6-1单选题 1-5 CBBAD 6-10 DBCCD 11-15 DCABC 6-2填空题 1. 120 2. x 3 . 3,2,2,3 4. fac/i 5. 8,17 6. 9 7. 1.0/(i*i) 8. fun-in:30,20,10 fun-end:1015,35,1050 10,20,30 9. 012345 10. 93636 6-3 编程题 1. 编写一函数把字符串中的小写字母转换成大写字母,其他字符不变。 void zhuan( ) { char ch; while((ch=getchar())!=’\\n’) { if(ch>=’a’ && ch<=’z’) ch=ch-32; putchar(ch); } } 2. 编写一函数求e=float expp(int n) { int k, fac=1; float sum=0; for(k=1; k<=n; k++) { fac*=k; sum+=1.0/fac ; } return(sum); } 11!12!13!… 1n!… 3. 编写一函数求一个整数的任意次方的最后3位数,即求x的最后3位数。 int xy3( int x, int y) { int k, num=1; for(k=1;k<=y ; k++) num*=x ; num=num%1000 ; return num ; } 4. 有5个人坐在一起,第5个人说他比第4个人大2岁,第4个人说他比第3个人大2岁,第3个人说他比第2个人大2岁,第2个人说他比第1个人大2岁,第1个人说他10岁,请问第5个人多大? int age( int n) { int c; if(n==1) c=10 ; else c=age(n-1)+2 ; return c ; } y 习题7 7-1单选题 1-5 DBCCB 6-8 BDC 7-2填空题 1. 2. 3. 4. c 60 1000 10 16 7-3 编程题 1. 编写程序计算下列公式中的f值,使用带参数的宏来实现。 #include “math.h” #define F(a) a*a+ sqrt(3*a*a+2*a+1) main() { float x, f; scanf(“%f”, &x ); f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x) ; printf(“%f\\n”, f); } 习题8 8-1单选题 1~15 CADAC 6~10 CCDAB 11~15 CBBCD 8-2填空题 10000 01000 1 (1) 2 3 4 5 (2) 10010 (3) QuickC (4) 00100 2. (1) j+=2 (2) a[i]>a[j] 00010 3. (1) r+b[k] (2) *x 00001 8-3 编程题 1.设数组a中的元素都为正整数,编程求其中偶数的个数和偶数的平均值。 #include \"stdio.h\" #define N 10 main() { int a[N]={1,2,3,4,5,6,7,8,9,0},osum=0, ocount=0, j; for(j=0;j<10;j++) if(!( j%2)){ ocount++; osum+=a[j];} printf(“ocount =%d, osum =%d\\n”, ocount, osum); } 2. 有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中,插入后数组仍然有序,请编程实现。 #include \"stdio.h\" #define N 10 main()