2、编写一个程序来模拟一个计算器。程序应该输入两个整数和一个运算符,然后输出数字、运算符和结果。如果分母是零,输出一条适当的信息。示例输出如下: 13*5=65
3、编写一个具有返回值的函数isVowel(char ch),如果给定的字符ch是一个元音字母,函数返回true,否则返回false。编写一个主程序,它提示输入一串字符,调用isVowel()函数,输出该字符串中元音字母的数量。 参考答案:
一、单项选择题(每小题2分,共20分) (1)~(5)CDCBA (6)~(10)BADDA 二、 填空题(每小题2分,共20分) (1)3.14*(r1*r1-r2*r2) (2)m=4,k=9 (3)0.013
(4)x=64,y=?6?,z=?5? (5)ABC (6)****
(7)5,6,9,19,23,37 (8)cat
cod ado (9)125 (10)4
三、程序分析填空题(每空3分,共30分) 1.i 3. {1,1};4. f[i]=f[i-2]+f[i-1]; 凡是所填空为语句的没有分号减1分 5. for(i=0;i<9-j;i++)6. {t=a[i]; a[i]=a[i+1]; a[i+1]=t; } 7.age(n-1)+2 8. age(n) 9.a[i][i]=1;10.a[i-1][j-1]+a[i-1][j] 四、编程(每题10分,共30分) 1、 #include printf(“Please enter a yinli”); 31 scanf(\ f=5280*12*2.54*c/100000; printf(\} 2、 #include printf(\ scanf(\switch(op){ case ?+?:printf(“%d%c%d=%d”,a,op,b,a+b);break; case ?-?: printf(%d%c%d=%d”,a,op,b,a-b);break; case ?*?: printf(%d%c%d=%d”,a,op,b,a*b);break; case ?/?: if(b!=0)printf(%d%c%d=%d”,a,op,b,a/b); else printf(“Data error!”);break; } } 3、 #include while((a=getchar())!=?\\n?) if(isVowel(a))c++; printf(“Vowel=%d\\n”,c); } int isVowel(char ch) { switch(ch){ case ?a?: case ?e?: case ?i?: case ?o?: case ?u?:return 1; default:return 0; } } 32 C语言程序设计试题集(第6套) 一、单项选择题(30分,每题2分) 1. 下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用 /<*??*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用 。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a< 0‖b<0) B、(a>=0&&b>=0)&&(a< 0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1? ; 则执行后,c3的值是______。 A、2.0 B、2 C、 3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。 A、scanf(\ B、scanf(\ C、 scanf(\D、 scanf(\ 8. 以下程序输出结果是 。 A、 7 B、 6 33 C、 5 D、4 main() { int m=5; if(m++>5) printf(\ esle printf(\ } 9. 有以下程序段 #include main() {int sum=0,i; scanf(\ do {sum=sum+i;i++;} while(i<=10); printf(\ } 若运行时从键盘输入11,则循环体会执行 。 A、11次 B、10次 C、1次 D、 0次 10.二维数组int a[4][4]前5个元素在内存中的排列次序为 。 A、 a[0][0] a[1][1] a[2][2] a[3][3] a[4][4] B、 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] C、 a[0][0] a[1][0] a[2][0] a[3][0] a[0][1] D、 a[0] a[0][0] a[0][0][0] a[0][0][0][0] a[0][0][0][0][0] 11. 在C语言中,表达式1/2+1/2+1/2+1/4+1/5运算后得到的结果是 。 A、1.95 B、1.5 C、0 D、2.0 12.以下程序的输出结果是 。 A、3 B、2 C、1 D、4 main() { int a[10]={1,2,3,4,5,6,7,8,9,10} , *p ; p=a; printf(\} 13.下面对一维数组初始化(10个元素,各元素都赋值为0)的语句不合法的是 。 A、int a[10]={0,0,0,0,0,0,0,0,0,0}; B、int a[10]={0}; C、int a[10]={0*10}; 34 D、int a[]={0,0,0,0,0,0,0,0,0,0}; 14. 有以下程序 main() { int i; for (i=0; i<3; i++) switch (i) { case 1: printf(\ case 2: printf(\ default : printf(\ } } 执行后输出结果是 。 A、 011122 B、012 C、012020 D、 120 15. putchar函数可以向终端输出一个 。 A、整型变量表达式值 B、字符 C、字符串 D、实型变量值 三. 程序填空题(30分,每空3分) 1. 有以下语句段 int n1=10,n2=20; printf(\ ① \ n1和n2的值,输出行从第一列开始,请填空。 n1=10,n2=20 2. 以下程序的功能是找出x、y、z三个数中的最小值。请填空。 main( ) { int x=4, y=5, z=8; int u, v; u=x 3.统计数组元素中值大于等于60的元素的个数。请填空。 main() {int s,i,a[10]={50,60,70,80,90,100,66,44,55,77}; s=0; for(i=0;i<10;i++) if( ③ ) ④ ; printf(\ 35