1、C程序设计试题 一、单项选择题。(每题1分,共20分)1. C程序的基本单位是:( ) A.子程序 B.程序 C.子过程 D.函数2.在C语言中,非法的八进制是:( ) 3. 不是C语言实型常量的是:( ) .字符串“xyzw”在内存中占用的字节数是:( ) 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:( ) A.2.0 若有语句char c1=d,c2=g;printf(“%c,%dn”,c2-a,c2-c1);则输出结果为:( )(a的ASCII码值为97),2 ,3 ,2 ,g7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,
2、正确的数据输入是: =,b=3 = b=3 3 表示关系12=x=y的C语言表达式为:( ) A.(12=x)&(x=y) B. (12=x)&(x=y) C. (12=x)|(x=y) D(12=x)|(xyx:mc4)后,s,t的值为:( ) ,2 ,1 ,1 ,0 12. 语句for(a=0,b=0;b!=100&a5;a+)scanf(“%d”,&b); scanf最多可执行次数为:( ) 13. 对于for(s=2; ;s+)可以理解为:( ) A. for(s=2;0 ;s+) B. for(s=2;1 ;s+) C. for(s=2;s2;s+) 14. 若有char h=a,g
3、=f;int a6=1,2,3,4,5,6;则数值为4的表达式为:( ) g-h 4 d-h h-c 15. 设:char s10=“october”;则printf(“%dn”,strlen(s);输出是:( ) 16. 若有int a35=2,2,2,6,2,6,2,则数组a共有个元素: 17. 设int a=5,b,*p=&a,则使b不等于5的语句为: ( ) =*&a =*a =*p =a 18. 若有int a7=1,2,3,4,5,6,7,*p=a则不能表示数组元素的表达式是: A.*p B.*a 7 p-a19. 若有int b4=0,1,2,3,*p则数值不为3的表达式是: (
4、 ) =s+2,*(p+) =s+3,*p+ C. p=s+2,*( +p) 3 20.设有如下定义:struct janint a;float b;c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:( ) A.(*p). B.(*p).a D. 二、填空题。(每空1分,共15分)语言标识符由 _、_和_来构造。2.在C语言中,字符串常量是用 一串字符。3.若有说明和语句:int a=25,b=60;b=+a;则b的值是 。4.若int x=5;while(x0)printf(“%d”,x-);的循环执行次数为 。5.若有int a5,*p=a;则p+2表示第 个元素的地址。6.若有
5、说明和语句:int a=5,b=6,y=6;b-=a;y=a+则b和y的值分别是 、 。7.已知整型变量a=3,b=4,c=5,写出逻辑表达式a|b+cc&b-c的值是 。程序设计的三种基本结构是 _、_和_。9.数组是表示类型相同的数据,而结构体则是若干 数据项的集合。语言中文件是指 。三、将下列程序补充完整。(每空分,共30分)1.输入三角形的三条边a,b,c,求三角形的面积。 #include “” #include “” main( ) float a,b,c,d,t,s; printf(“请输入三角形的三条边:”); scanf(“%f,%f,%f”,&a,&b,&c); if (1
6、) printf(“%f%f%f不能构成三角形!”, a,b,c);else t=(a+b+c)/2;s= (2) printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2fn”, a,b,c,s);(1) (2) 2.输入两个整数,n1,n2(要求n1n2) (4) for(j=n1;j=n2,j+)if (5) n+;printf(“a=%5d,b=%5d,n=%5dn”n1,n2,n);(3) (4) (5) 3.输入两个整数,n1,n2(要求n1b) (7) for(j=a;j=b,j+)if( (8) ) n+;printf(“a=%4d,b=%4d,n=%
7、4dn”a,b,n);(6) (7) (8) 4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。#include “”main( )int x,n,k,k1=0,k2=0,k3=0;printf(“input n=:”);(9) for(k=0;kn;k+)scanf(“%d”,&x);if (x0;y-) if(y%3=0)printf(“%4d”-y);continue; k+; printf(“nk=%4d,y=%4dn”,k,y); 输出结果: 3.数组 #include “” main( ) int k,j;in ta=3,-5,18,27,37,23,69,
8、82,52,-15; for(k=0,j=k;kaj)j=k; printf(“m=%d,j=%dn”,aj,j); 输出结果为: 4.字符输出 main( ) char *p,s=“ABCD”; for ( p=s;ps+4;p+) printf(“%sn”,p); 输出结果: 五、按题目要求写出可运行程序:(19分)1.求元素个数为10的一维数组元素中的最大值和最小值。2.将矩阵 9 7 5 倒置为 9 3 4 3 1 2 7 1 6 4 6 8 5 2 83.编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数。编写程序如下:C程序设计试题答案一、单项选择题: 二、填空题:1.
9、字母、数字和下划线 2.双引号 5.三(3) ,20 8.顺序结构、选择结构、循环结构 9.类型不同 10.存储在外部介质上的相关数据集合。三、将下列程序补充完整。1.(1)(a+bc)|(b+ca)|(a+cb)(2)sqrt(t*(t-a)*(t-b)*(t-c)2.(3)”%d%d”,&n1,&n2 (4) j=n1;n1=n2;n2=j;(5)j%3=03.(6)(k=2;k=A&ch=a&ch=z四、按格式写出程序运行结果。=1,a8=1,a16=1 c10=65,c8=101,c16=41,cc=A d10=98,dc=b 5 2 k=4 y=0=82,j=7 BCD CD D五、
10、按题目要求写出可运行程序。1.#include “” main() int term10;int i,max,min;printf(“请输入10个整数:”);for(i=0;i10;i+)scanf(“%d”,&termi);(max=term0;min=term0;for(i=0;i10;i+)if(termimax)max=termi;printf(“max=%d,min=%d”,max,min);2. main() int j,k,x; int a3=9,7,5,3,1,2,4,6,8;for(j=0;j3;j+) for(k=j+1,k3;k+)x=ajk;ajk=akj;akj=x;
11、for(j=0;j3;j+) for(k=0,k3;k+)printf(“%4d”,ajk);3.#include “” int gcd(int m,int,n) if(n=0)return(m);else return(gcd(n,m%n);int tim(int m,int,n)return(m*n/gcd(m,n);main()int m,n,g,t;printf(“enter two number please:”);scanf(“%d,%d”,&m,&n);g=gcd(m,n);t=tim(m,n);printf(“gcd(m,n)=%dn”,g);printf(“tim(m,n)=%dn”,t);