《《高级语言程序设计》复习题及答案.pdf》由会员分享,可在线阅读,更多相关《《高级语言程序设计》复习题及答案.pdf(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、选择题一、选择题.以下叙述正确的是():A)在 C 程序中,main 函数必须位于程序的最前面B)C 程序的每行只能写一条语句C)C 语言使用库函数实现输入输出操作D)注释中的拼写错误会影响编译结果2、以下说法中正确的是()A)C 语言程序总是从第一个的函数开始执行B)C 语言程序总是从 main()函数开始执行C)在 C 语言程序中,要调用的函数必须在 main()函数中定义D)C 语言程序中的 main()函数必须放在程序的开始部分3、下列选项种说法正确的是()A)函数由声明部分和执行部分两部分组成B)语言中 main 函数一定在程序的开始部分C)C 语言程序总是从第一个定义的函数开始
2、执行D)C 程序的每行中只能写一条语句4、设有说明:int a;float b;char c;double d;则表达式 1.3*a+2*b*c+d*(int)2.6 值的类型为()。A)double B)char C)float D)int5、C 语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符6、以下不正确的 C 语言标识符是()。A)ABC B)abc C)a_bc D)void7、下列运算符中优先级最高的是()A)x?w:y z?y:z”的值是()A)4 B)3 C)2 D)1
3、13、有以下程序,程序运行后的输出结果是。main()int i=1,j=2,k=3;if(i+=1&(+j=3|k+=3)printf(%d%d%dn,i,j,k);A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 314、下面程序的输出结果是main()int x=2,y=-1,z=2;if(xy)if(y0)z=0;else z=-1+x;printf(“%dn”z);A)3 B)2 C)1 D)015、执行下列语句后,a 的值为()main()int a=5;printf(“%dn”,(a=3*5,a*4,a+5);A)65 B)20 C)15 D)1016、下列程序段中,有
4、错误的行是()列定行号 int x=0,y=10;2 switch(x)3 case 3:4 case 1:y=y-2;break;5 case y+1:x+=5;6 default:printf(“%d,%d”,x,y);A)4 B)3 C)5 D)无错误17、若 i 为整型变量,则以下循环执行次数是()。#includestdio.hvoid main()int i;for(i=2;i=0;)printf(%d,i-);A)无限次 B)0 次 C)1 次 D)2 次18、若有以下定义,doublea10;则 a 数组元素下标的上、下限分别为()A)1,10 B)0,9 C)0,10 D)1
5、,919、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是()A)调用可以作为独立的语句存在 B)调用可以作为一个函数的实参C)调用可以出现在表达式中 D)调用可以作为一个函数的形参20、定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句for(i=0;i3;i+)printf(%d,xi2-i);输出结果是()A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 921、以下不能正确定义二维数组的选项是A)int a22=1,2;B)int a2=1,2,3,4;C)int a22=1,2,3;D)int a2=1,2,3,4;22
6、、若有以下定义:int a5=10,20,30,40,50,*p=a;则执行+(*p)后(*p)+的值是A)10 B)11 C)20 D)2123、函数的嵌套调用是指A)直接调用本函数B)在定义函数时,又定义另一个函数C)间接调用本函数D)被调用函数又调用另一个函数24、下列说法正确的是A)被调用函数必须先调用,后声明B)用户自定义函数的类型若未指出,则系统默认为 voidC)全局变量不能与局部变量同名D)实参可以是任意表达式25、以下描述正确的是()A)continue 语句的作用,是结束整个循环语句的执行B)只能在循环体内和 switch 语句体内使用 break 语句C)在循环体内使用
7、break 语句或 continue 语句的作用相同D)多层循环嵌套中不可以使用 break 语句26、若有说明语句:“int a34;”,则对数组元素的正确引用格式是(A)a24 B)a1,3 C)a1+10 D)a(2)(1)27、若有说明:“int a34=0;”,则下面正确的叙述是()A)只有元素 a00可得到初值 0B)此数组说明语句不正确C)数组 a 中各元素都可得到初值,但其值不一定为 0D)数组 a 中每个元素均可得到初值 028、定义数组 a 和 b 的语句是:“char a=“ABCDEF”;char b=A,B,C,D,E,则以下叙述正确的是()A)a 和 b 数组完全相
8、同 B)a 与 b 数组元素个数相同C)a 和 b 中都存放字符串 D)a 数组比 b 数组元素个数多29、语句“int(*ptr)();”的含义是()A)ptr 是指向一维数组的指针变量B)ptr 是指向 int 型数据的指针变量C)ptr 是指向函数的指针,该函数返回一个 int 型数据D)ptr 是一个函数名,该函数返回值是指向 int 型数据的指针30、若有定义:“int *p4;”,则标识符 p 是()A)一个指向整型变量的指针B)一个指针数组名C)一个指针,它指向一个含有四个整型元素的一维数组D)无效的数组名31、在 C 语言中()A)函数定义可以嵌套,但函数调用不可以嵌套)F;”
9、B)函数定义不可以嵌套,但函数调用可以嵌套C)函数定义和调用都可以嵌套D)函数定义和条用都不能嵌套32、下面程序的输出结果是()#include void main()int i,j,x=0;for(i=0;i=2;i+)x+;for(j=0;j=2;j+)if(j%2)continue;x+;x+;printf(%dn,x);A)4 B)6 C)8 D)1233、执行下列语句后,m 的值为()int m=1,x=2,y=3,z=4;m=mx?m:x;m=my?m:y;m=mz?m:z:A)1 B)4 C)2 D)334、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()int
10、a10;for(i=0;i=9;i+)scanf(“%d”,);A)a B)&ai C)ai D)&a035、下列叙述正确的是()A)do-while 语句构成的循环不能用其它语句构成的循环来代替B)do-while 语句构成的循环只能用 break 语句退出C)用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环D)用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环36、下列程序的输出结果为()#include“stdio.h”main()int a,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;cont
11、inue;b+=5;printf(“%d,%d”,a,b);A)8,20 B)8,22 C)7,20 D)7,2237、设 int a5=10,15,20,25,30;int*p;p=a+2;则表达式+*p 的值为()A)20 B)15 C)16 D)2138、设 w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后 A)b 的值分别为()(a=wx)&(b=yz);A)0 和 0 B)5 和 0 C)0 和 6 D)5 和 639、下列语句的输出为()int x=-1;printf(“%d,%u,%o”,x,x,x);A)1,-1,-1 B)1,32767,-177777C)1,
12、32768,177777 D)1,65535,17777740、下列函数调用语句中的实参个数为()fun(a+b,x,y),fun(x,(x+z);A)2 B)3 C)4 D)541、设有数组定义:char array=”china”;则数组 array 所占的内存空间为(A)4 个字节 B)5 个字节 C)6 个字节 D)7 个字节42、以下程序段的运行结果是()。char c5=a,b,0,c,0 ;printf(“%s”,c);A)ab B)ab C)ab c D)a b43、若 C 程序中出现死循则违背了算法的()A)有效性 B)确定性C)有穷性 D)有一个或多个输出44、设 int
13、a=20;则执行表达式:a/=a+a 后,a 的值是()A)0 B)1 C)20 D)4045、int x,y,z,m=5,n=5;则执行下面语句后的 z 值是()x=(-m=n+)?-m:+n;y=m+;z=n;A)5 B)10 C)6 D)746、执行下列程序段后,i 的正确结果是()int i=10;switch(i))case 9:i+=1;case 10:i+;case 11:+i;default:i+=i;printf(%d,i);A)10 B)11 C)12 D)2447、若有定义:int a10;。则以下表达式中不能代表数组元素 a1的地址的是()A)&a0+B)&a1 C)&
14、a0+1 D)a+148、变量的指针,其含义是指该变量的()A)值 B)地址 C)变量名 D)一个标志49、有以下函数定义:void fun(int n,double x)若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是(A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n);D)void fun(n,x);50、设整型变量 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是()。A)0 B)1 C)2 D)351、若 int a,b;scanf(%d%d,&a,&b);不可以用()作为输入的分隔符。A),B)空格
15、 C)回车 D)TAB 键52、下面关于运算符优先顺序的描述中正确的是:()A)关系运算符 算术运算符 赋值运算符 逻辑与运算符B)逻辑 运算符 关系运算符 算术运算符 赋值运算符C)赋值运算符 逻辑与运算符 关系运算符 算术运算符D)算术运算符 关系运算符 赋值运算符 逻辑与运算符53、为了判断两个字符串 s1 和 s2 是否相等,应当使用()。A)if(s1=s2)B)if(s1=s2)C)if(strcpy(s1,s2)D)if(strcmp(s1,s2)=0)54、以下对二维数组进行正确初始化的是()。A)int a23=1,2,3,4,5,6;B)int a3=1,2,3,4,5,6
16、;C)int a2=1,2,3,4,5,6;D)int a2=1,2,3,4;55、若用数组名作为函数调用时的实参,则实际上传递给形参的是()。A)数组的首地址B)数组的第一个元素值C)数组中全部元素的值D)数组元素的个数56、以下错误的描述是()。A)不同的函数中可以使用相同的变量名B)形式参数是局部变量C)一个函数内部定义的变量只能在本函数范围内有效D)在一个函数内部的复合语句中定义的变量可以在本函数范围内有效)57、下列程序的运行结果是()main()int i=10;int *p=&i;i=8;printf(“%d”,*p);A)10 B)8 C)程序错误,不能运行 D)结果不确定58
17、、C 语言中,double 类型的数据占字节数为()A)1 B)2 C)4 D)859、可在 C 程序中用作用户标识符的一组标识符是()A)as_b3 _123 IfB)For -abc caseC)2c DO SIGD)void define WORD60、以下字符中,不正确的 C 语言转义字符是()A)B)018 C)Xaa D)t61、C 语言中,数据在内存中都以()形式存放A)原码 B)反码 C)ASCll 码 D)补码62、下列运算符中,优先级最高的是()A)&B)!C)+D)|63、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a 的值为
18、11,b 为12,c 为 13,则从键盘输入数据的正确形式应当是()。A)11 12 13 B)11,12,13C)a=11 b=12 c=13 D)a=11,b=12,c=1364、为表示关系-1x1 应使用的 c 语言表达式是()A)-1x1 B)-1=x&x=1 C)-1=x=-1&xb)return b;else return b;main()int x=3,y=8,z=6,r;r=fun(x,y+z);printf(%dn,r);程序运行后的输出结果是()A)3 B)6 C)8 D)1473、若有说明:int n=17,*p=&n,*q=p;,则以下非法的赋值语句是()A)p=q;B
19、)*p=*q;C)n=*q;D)p=n;74、以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:main()int n,k;float score,sum,ave;sum=0.0;for(n=1;n=10;n+)for(k=1;k=4;k+)scanf(“%f”,&score);sum+=score;ave=sum/4.0;printf(“NO%d:%fn”,n,ave);上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是()A)sum=0.0;B)sum+=score;C)ave=sun/4.0;D)prin
20、tf(“NO%d:%fn”,n,ave);75、数组定义为 char a10=a,b,c;该数组包括的元素个数是()A)3 B)9 C)4 D)1076、下面程序的输出结果是()main()int x=2,y=-1,z=2;if(x y)if(y=a;p-)printf(%d,*p);程序运行后的输出结果是()A)0 1 2 3 4 5 6 7 8 9B)2,3,4,5,6,7,8,9,10,1C)0,1,2,3,4,5,6,7,8,9,D)9,8,7,6,5,4,3,2,1,0,78、执行循环语句:for(x=y=0;y!=250|x4;x+)y+=50;其循环体执行的次数为()A)5A)y
21、=x/(5+.0)int x=0,s=0;while(!x!=0)s+=+x;printf(%d,s);则:A)运行程序段后输出 0 B)运行程序段后输出 1C)程序段中的控制表达式是非法 D)程序无法运行81、有以下程序,程序运行后的输出结果是()#includestdio.hvoid main()int i=0,j=2,m=3,n;n=i+=2&m+;printf(%d,%d,%d,%d n,i,j,m,n);A)2,2,4,1 B)2,2,3,1 C)1,2,4,1 D)2,1,3,182、下面程序的输出结果是()B)4 B)y=x/5.C)3 C)y=1.*x/5 D)2 D)y=x/
22、5*1.079、如 int x=14;下列求商 y(需小数结果)的表达式哪一个不对()80、设有以下程序段()#include void main()int i,x=1,y=0,a=0,b=0;switch(x)case 1:b+;case 2:a+;b+;break;case 3:a+;b+;printf(%d,%dn,a,b);A)2,1 B)2,2 C)1,2 D)4,2二、程序分析及填空1.C 语言的基本数据类型中,有两种实数类型变量,一种是 float 型,另一种是()型。2.若程序中有语句“scanf(“a=%d,b=%d”,&a,&b);”,在执行程序时,要输入 3 和 5 两个
23、数,应该键入()。3.包含数学类库函数的头文件名称是()。4.字符串“ab034x79”的长度为()。5数组元素作函数参数进行的是传递,数组名作函数参数进行的是_传递。6设有函数调用语句f(x1,x1x2,f1(x1,x2);则函数f()实参的数目有_个。7在数组int score10=1,2,3,4,5,6中,元素定义的个数有个,其中 score8的值为。8.C 语言源程序文件的后缀是经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。结构化程序由、三种基本结构组成。9、C 语言提供的三中逻辑运算符是_、_、_。10、若 a=1,b=4,c=3,则表达式!(ab)|!c&1 的值是_
24、。11、在 C 语言中,若对函数类型未加说明,则函数的隐含类型为类型。12、在 C 语言中,唯一的一个三目运算符是。13、以下程序运行后的输出结果是_。#include void main()int m=5;if(m+5)printf(%dn,m);else printf(%dn,m-);14、以下程序运行后的输出结果是。#include void main()int x=15;while(x10&x50)x+;if(x/3)x+;break;else continue;printf(%dn,x);15、下面程序的运行结果是:。#include stdio.h void swap(int*a,
25、int*b)int *t;t=a;a=b;b=t;void main()int x=3,y=5,*p=&x,*q=&y;swap(p,q);printf(%d%dn,*p,*q);16、在执行以下程序时,如果从键盘上输入:AdEf,则输出为 _#includestdio.hvoid main()char ch;while(ch=getchar()!=n)if(ch=A&ch=a&ch=z)ch=ch-32;printf(%c,ch);printf(n);17 设有以下宏定义,则执行赋值语句 a=PP*20;(a 为 int 型变量)后,a 的值是。#define PR 100#define P
26、P PR+40018、下列程序段的输出结果为int x=10,y=1;y=y-|x+;printf(“%d,%d”,(y,x+),y);19、有以下程序#include stdio.hvoid main()int a44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;i4;i+)s+=aii;printf(%dn,s);程序运行后的输出结果是程序的功能为20、有以下程序#include void main()int p=2,t=1;while(p=5)t=t*p+;printf(%dn,t);该程序运行后变量 p 和 t 中的值分别为。2
27、1、有以下程序#include void main()int a,b,c=221;a=c/100%3;b=a&-1;printf(“%d,%d”,a+,b-);该程序运行后的输出结果是22、以下程序的输出结果为。#include main()int a=1,2,3,4,5,6,*p=a;*(p+3)+=2;printf(“%d,%d”,*p,*(p+3);23、以下程序的输出结果为。#include stdio.hint x1=40,x2=70;void main()int x3=50,x4=60;int sub(int x3,int x4);printf(%d,%dn,x1,x2);void
28、 sub(int x,int y)x1=x;x2=y;24、下面 C 程序的输出是:main()int m=6;if(m-0)f(n/10);void main()f(12);27、以下程序的输出结果是:#include stdio.hvoid main()int y;for(y=6;y0;y-)if(y%3=0)printf(%d,-y);continue;28、在数组int score10=1,2,3,6中,score7的值为_。29、程序运行后的输出结果是#include stdio.hvoid main()int a=1,b=2;printf(%d,(a+,+b,(a+)+b);30、
29、以下程序运行后的输出结果是#include void main()int i,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(“%d”,xi2-i);31.以下程序运行后的输出结果是#include main()int a=5,b=7,c;printf(“%dn”,c=ab);32.以下程序运行后的输出结果是#include stdio.hmain()int i,j,k=0,m=0;for(i=0;i2;i+)for(j=0;j3;j+)k+;k-=j;m=i+j;printf(k=%d,m=%dn,k,m);33.以下程序运行后的输出结果是#includ
30、e stdio.hswap(int *p1,int *p2)int p;p=*p1;*p1=*p2;*p2=p;main()int a=12,b=13;int*pointer_1,*pointer_2;pointer_1=&a;pointer_2=&b;if(ab)swap(pointer_1,pointer_2);printf(n%d,%dn,a,b);34.以下程序运行后的输出结果是#include stdio.hmain()int i,*p,a7=1,2,3,4,5,6,7;p=a+2;for(i=0;i3;i+,p+)printf(%d,*p);35.以下程序运行后的输出结果是main
31、()int n;for(n=1;n=A&chk=a&chk=z)chj+=chk;k+;chj=0;printf(“%s”,ch);37、以下程序运行后的输出结果是。#include void swap(int*a,int*b)int *t;t=a;a=b;b=t;void main()int x=5,y=9,*p=&x,*q=&y;swap(p,q);printf(“%d,%dn”,*p,*q);38、有以下程序,该程序运行后的输出结果是#include void main()int a,b,c=222;a=c/100%3;b=-1&-1;printf(“%d,%d”,a,b);三、补全程序
32、题1、输入三个整数 x,y,z,把这三个数由小到大输出。Main()int x,y,z,t;scanf(“%d%d%d”,&x,&y,&z);if(xy)/*交换 x,y 的值*/if(xz)/*交换 x,z 的值*/if(yz)/*交换 z,y 的值*/printf(“small to big:%d%d%dn”,x,y,z);2、求圆的面积和周长,请补全下面程序:#define PI 3.14159 void main()float r,s,y;/*r 表示半径;s 表示面积;y 表示周长*/scanf(“%f”,&r);s=PI*;y=2*;printf(“s=%f,y=f”,s,y);3
33、、函数 a1 的功能是求一维数组中所有元素的平均值并返回给主调函数。请补全下面程序:float a1()float b10,sum=,aver;int i;for(i=0;i10;i+)scanf(“%f,&bi);for(i=0;i10;i+)sum+=;aver=sum/10;return ;4、从键盘上输入 10 个数,输出最大、最小元素的值以及它们的下标。#include void main()int i,j,k,max,min,a5;for(i0;i5;i+);maxmina0;jk=0;for(i0;i5;i+)if(max0)_;if(n0)_;scanf(“%d”,&n);pr
34、intf(“i=%4d j=%4dn”,i,j);6、输入一个 3 位正整数,反序输出。#include void main()int x,x1,x2,x3,y;printf(“please input x:”);scanf(“%3d”,&x);x1=;x2=x/10%10;x3=;y=x3*100+x2*10+x1;printf(“y=%dn”,y);7、计算 s=1!+2!+3!+n!#include long f(int n)int i;long t=1;for(i=1;i=n;i+);void main()int i,n;scanf(“%d”,&n);for(;)s=s+f(i);pr
35、intf(“s=%ldn”,s);8.输入两个数并判断两数是否相等,如果相等输出 a=b,不相等输出 a!=b。#include main()int a,b;printf(Enter integer a and b:);scanf(%d%d,);printf(a=bn);elseprintf(a!=bn);9.输出半径从 1 到 10 的圆面积,当面积大于 100 时停止#define PI 3.14159main()int r;float area;for(r=1;r100);printf(r=%d,area=%.2fn,r,area);10.以下程序以每行输出 8 个数据的形式输出 a 数
36、组。#include void main()int a50,i;for(i=0;i50;i+)scanf(“%d”,&ai);for(i=0;i=0&n=2)long fun(int n)long t;if(n=0|n=1)t=1;else t=;return(t);14、函数 a1 的功能是求一维数组中所有元素的平均值并返回给主调函数。请补全下面程序:float a1()float b10,sum=0,aver;int i;for(i=0;i10;i+)scanf(“%f,&bi);for(i=0;i10;i+)sum+=;aver=sum/10;return ;15、把 100-200 之
37、间的能被 3 和 7 整除的数输出,请补全下面程序:viod main()int n;for(n=100;n ;n+)if()continue;Printf(“%5d”,n);16、下面程序的功能是输出 1000 以内的个位数为 6,且能被 3 整除的所有数.main()int i,j;for(i=0;i+)j=i*10+6;if()countinue;printf(%d,j);17、有以下程序段:s=1.0;for(k=1;k=n;k+)s=s+1.0/(k*(k+1);printf(%fn,s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;k=0;do s=s+d;d=1.
38、0/(k*(k+1);while();printf(%fn,s);18、输入一个 3 位正整数,反序输出。#include void main()int x,x1,x2,x3,y;printf(“please input x:”);scanf(“%3d”,&x);x1=;x2=x/10%10;x3=;y=x3*100+x2*10+x1;printf(“y=%dn”,y);四、程序改错1.程序说明 以下程序的功能是在主程序中输入一个整数,在子程序中得到该数的绝对值,并在主函数中输出该数的绝对值。include“stdio.h”main()int a;scanf(“%d”,a);printf(“%
39、dn”,ABSB、);abs(int x);if(x=0)return(x);elsereturn(x);2、用 Fibonacci 数列前 20 个数,以四行五列显示。main()int i;int f20=(1,1);_ _ for(i=1;i=20;i+)_ _ fi=fi-2+fi-1;for(i=1;i=20;i+)_ _ if(i/4=0)printf(n);_ _ printf(%12d,fi);3.void main()int x,y=z=5int aver;x=7 AVER=(x+y+z)/3;printf(“AVER=%dn”,aver);4.下面程序希望实现的功能是:定义
40、两个字符数组 STR1、STR2,在键盘上输入 STR2 的值,然后将 STR2 连接到 STR1 后面,最后打印两个数组。划线部分存在错误,请将改正后的结果填入右侧对应的横线#include string.hmain()char str1100abc,str2;scanf(%s&str2);for(i=0;str1i!=0;i+)for(j=0;str2j!=0;j+)str1i=str2j;printf(“%c”,str1);puts(str2);5.请将改正后的结果填入右侧对应的横线#include stdio.h,Void mainlong int d;float x;Scanf(“%
41、dn”,d);x=1/2*SIN(d*pi/180.0);printf(“x=%fn”,x)五、编写程序1、定义求 mn的函数 int f(int m,int n)。并求解 5。2、编程实现 1,2,3,4,5 这 5 个数的乘积,并输出结果。3、有一分段函数:x-1 (x0)编写一程序,输入一个 x 的值,输出对应的 y 值。4、编写程序求出 100 到 200 之间的所有素数5、从键盘上输入 10 个数,输出最大、最小元素的值及它们的下标。6、输入两个整数 m 和 n,求其最大公约数和最小公倍数。7、计算 s=1!+2!+3!+n!8、输出 1000 以内的个位数为 6,且能被 3 整除的
42、所有数9.从键盘输入 3 名学生的 5 门课的成绩,分别统计出每个学生的平均分(要求:用数组实现)。10、编程实现 1,2,3,50 这 50 个数的和,并输出结果。11、求 44 的二维数组主对角线上的所有数据之和及平均值,并将大于平均值的数进行输出。12.一个包含 10 个元素的整型数组,编写程序求出该数组中的最大数和最小数,并判断这两个数是否为互质数(互质数的判断条件是:除了 1 之外这两个数再也没有其他的公约数)。13.求出 100 以内能够同时被 3 和 5 整除的这些数的和。14.用函数将数组 a 中的 n 个整数按相反顺序存放。15.从键盘上输入一个字符串,统计其中包含的英文字母
43、、空格、数字符号各有多少个,输出统计结果。16.从键盘上任意一个正整数,判断它是否素数。若是素数,输出“It is a prime number.”,若不是素数,输出“It is not a prime number.”一、选择题题号答案题号答案题号答案题号答案题号答案题号答案题号答案题号答案题号答案二、程序分析及填空1、double2、a=3,b=53、math.h4、55、值地址1C11B21D31B41C51A61D71A81C2B12B2232D42B52C62B、C72D82C3A13D23D33A43C53D63D73D4A14B24D34B44A54B64D74A5C1525B3
44、5D45D55A65D75D6D16C26C36B46D56D66A76B7B17B27D37D47A57B67C77D8C18B28D38A48B58D68D78A9C19D29C39D49C59A69A79D10B、D20C30B40A50A60B70B80B6、37、1008、.c.obj.exe顺序选择循环9、!&|10、011、int12、?:13、614、1715、3516、aDeF17、1000018、11,019、23求整型 4*4 矩阵主对角线元素之和20、6,12021、2,122、1,623、40,7024、425、a=1026、空格空格 2 空格空格 1 空格空格 02
45、7、5228、029、430、35731、032、k=0,m=333、13,1234、34535、2-4-6-8-10(注:每一个箭头代表七个空格)36、aBcdEF37、5,9(注:该题和 15 题类似,但数据和输出形式均不同)38、2,1(注:该题和 21 题基本相同,差别在于数据分别为 222 和 221)三、补全程序题1、t=x,x=y,y=tt=x,x=z,z=tt=y,y=z,z=t2、r*rPI*r3、0 或 0.0 或 0.或.0 等形式biaver4、scanf(“%d”,&ai)max=aij=iminai5、(n!=0)i+j+6、x/100 x%107、t*=i 或 t
46、=t*ireturn t 或 return(t)int s=0i=1i=1i-)8、&a,&bif(a=b)9、PI*r*rbreak10、i%8=0printf(“n”)或 putchar(n)ai11、aasum/n12、a+ba-ba-b13、n*fun(n-1)14、biaver(同 3 题)15、=200n%3=0&n%7=016、i100 或 i=99j%3=017、d=1.0k+k=n18、x/100 x%10四、程序改错1、#include“stdio.h”(缺少#号)scanf(“%d”,&a);(缺少取地址运算符&)printf(“%dn”,abs(a);(函数名为 abs
47、,实参为 a)abc(int x)(多了分号;)return(-x)(返回值为-x 而不是 x)2、(1,1)改为1,1i=1改为i=2i=1;i=20;i+改为i=0;i20;i+i/4=0改为i%4=0(n)改为(”n”)3、int x,y=5,z=5;float aver;x=7;aver=(x+y+z)/3.0;最后一空按此该法没错误(注:此题也可将 AVER 定义为 int 型而不是 aver)4、#include(string.h 加双引号(”)或尖括号()scanf(“%s”,&str2);(缺少了逗号(,)去掉该行str1strlen(str1)+j 或 str13+j(数组下
48、标不合要求功能)printf(“%s”,str1);(str1 为字符串,输出应使用 s 格式而不是 c 格式)5、(注:此题该法较多,给出一种作为参考)Void main()改为void main()Scanf(“%dn”,d);改为scanf(“%ldn”,&d);(即:大小写长整形取地址)SIN改为sin五、编写程序1、#include int f(int m,int n)int t=1;for(i=1;i=n;i+)t=t*m;return(t);void main()printf(%d,f(5,4);函数 f()也可定义为递归函数:int f(int m,int n)int t=1;
49、if(n=0)t=1;elset=m*f(m,n-1)return(t);2、教材 P33 例 2.203、参照教材 P100 例 5.3或实验指导书 P26 题 5.54、教材 P127 例 6.95、#includevoid main()int a10,i,max,min,m,n;for(i=0;i10;i+)scanf(%d,&ai);max=min=a0;for(i=0;imax)max=ai;m=i;if(aimin)min=ai;n=i;printf(The max number is:%d,position is:%d n,max,m);printf(The min number
50、 is:%d,position is:%d n,max,n);6、实验指导书 P10 题(7)7、参照实验指导书 P37 题 6.58、#includevoid main()int i;for(i=1000;i=6;i-)if(i%10=6&i%3=0)printf(%5d,i);9、10、参照教材 P33 例 2.2011、#includevoid main()int i,j;float a44,sum=0,aver;for(i=0;i=3;i+)for(j=0;j=3;j+)scanf(%f,&aij);if(i=j)sum+=aij;aver=sum/4.0;for(i=0;iaver)