B A D D C C B B B C C 二、填空题
1.编辑、编译、链接、运行
2. 编译错误、链接错误、运行错误和逻辑错误 3. 静态调试、跟踪打印、跟踪调试 第二章 一、选择题
C A B C A A D A 二、填空题 1. int char 2. 4 3
3. 单引号表示形式、数值表示形式、转义字符表示形式
第三章
一、选择题
1. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是( A )。
A.x=y==5; B.x=n%2.5; C.x+n=I; D.x=5=4+1;
2. 设变量均已正确定义,若要通过scanf(\"%d%c%d%c\语句为变量a1和a2赋数值10
和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是( D ) 。(注:□代表空格字符)
A.10□X□20□Y〈回车〉 C.10□X〈回车〉 20□Y〈回车〉 main()
{unsigned int x=0xFFFF; /* x的初值为十六进制数 */ printf(\"%u\\n\}
程序运行后的输出结果是( B )。 A.-1
B.65535
C.32767
D.0xFFFF
4. 有以下程序段
char ch; int k; ch=’a’; k=12;
printf(\"%c,%d, \
已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是( D )。 A.因变量类型与格式描述符的类型不匹配输出无定值 B.输出项与格式描述符个数不符,输出为零值或不定值 C.a,97,12k=12 D.a,97,k=12 二、填空题
1. 已知定义:char c=' '; int a=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的初值为 0 。 2. 设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为 3 。
B.10□X20□Y〈回车〉 D.10X〈回车〉 20Y〈回车〉
3. 有以下程序,其中%u表示按无符号整数输出
3. 执行以下程序后的输出结果是 a=14 。
main() {int a=10;
a=(3*5,a+4); printf(\"a=%d\\n\}
4. 执行以下程序时输入1234567,则输出结果是 _1234___ 。
#include scanf(\"%2d%2d\} 三、编程题 1. 编写程序,输入一个非负数,输出以此数为半径的圆周长以及面积。 #include \"stdio.h\" #define PI 3.1415 void main() { } 2. 编写程序,输出下面结果,注意,双引号也要输出: “I'm a student!” #include 3. 编写程序,输入一个小写字母,将其转换为大写字母输出。例如输入b,则输出B。提示:小写字母和 对应的大写字母的ASCII码值相差32。 printf(\"\\\"I\\'m a student!\\\"\\n\"); float r,area,circumference; scanf(\"%f\area=PI*r*r; circumference=2*r*PI; printf(\"area=%6.2f\\ncircumference=%6.2f\\n\ void main() { char ch; ch=getchar(); ch-=32; putchar(ch); //printf(\"%c\} 4. 编写程序,输入一个华氏温度f,输出其相应的摄氏温度c。华氏温度和摄氏温度的转换公式为: c5(f32)9 #include void main() { float f,c; scanf(“%f”,&f); c=5.0*(f-32)/9; printf(“华氏温度%5.2f转换为摄氏温度为:%5.2f\\n”,f,c); } 第四章 一、选择题 1. 设有条件表达式:(EXP)?i++;j--,则以下表达式中与(EXP)完全等价的是( B )。 A.(EXP==0) B.(EXP!=0) C.(EXP==1) D.(EXP!=1) 2. 已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写 字母的表达式是( B )。 A.isupper(c) B.'A'<=c<='Z' C. 'A'<=c&&c<='Z' D.c<=('z'-32)&&( 'a'-32)<=c 3. 已知大写字母A的ASCII码是65,小写字母a的ASCII码值是97,以下不能将变量c中大写字母转换 为对应小写字母的语句是( D )。 A.c=(c-A)%26+'a' C.c=c-'A'+'a' 表达式是( B )。 A.kk>='A'&&kk<='Z' B.!(kk>='A'||kk<='Z') D.isalpha(kk)&&(kk<91) D.k+1 C. (kk+32)>='a'&&(kk+32)<='z' A.k++ B.k+=1 B.c=c+32 D.c=('A'+c)%26-'a' 4. 已知字符A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字符的 5. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A )。 C.++k 6. 当变量c的值不为2、4、6时,值也为“真”的表达式是( B )。 A. (c==2)||(c==4)||(c==6) C. (c>=2&&c<=6)&&!(c%2) A.x%2==1 A.if(x++); else y++; 9. 有以下程序段 int a,b,c; a=10;b=50;c=30; if (a>b) a=b,b=c;c=a; printf(\"a=%d b=%d c=%d\\n\程序的输出结果是( A )。 A. a=10 b=50 c=10 C. a=10 b=30 c=10 10.若有说明语句: int w=1,x=2,y=3,z=4; B.a=10 b=50 c=30 D. a=50 b=30 c=50 B.x/2 B. (c>=2&&c<=6)||(c!=3)||(c!=5) D. (c>=2&&c<=6)&&(c%2!=1) C.x%2!=0 D.x%2==0 7. 以下选项中,当x为大于1的奇数时,值为0的表达式( D )。 8. 设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( C )。 B.if(x>y&&y!=0); D.if(y<0) {;} else x++; C.if(x>y) x-- 则表达试w>x?w:z>y?z:x的值是( A )。 A.4 B.3 C.2 D.1 11.有以下程序 #include { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf(\"a=%d,b=%d\\n\} 程序的运行结果是( D )。 A.a=1,b=0 B.a=2,b=2 C.z=1,b=1 D.a=2,b=1 12.以下叙述正确的是( C )。 A.break语句只能用于switch语句体中 B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C.break 语句只能用在循环体内和switch语句体内 D.在循环体内使用break语句和continue语句的作用相同 二、填空题 以下程序的运行结果是 #& 。 void main() {int a=2,b=7,c=5; switch(a>0) {case 1:switch(b<0) { case 1:printf(\"@\"); break; case 2: printf(\"!\"); break; } case 0: switch(c==5) { case 0: printf(\"*\"); break; case 1: printf(\"#\"); break; case 2: printf(\"$\"); break; } default : printf(\"&\"); } printf(\"\\n\"); } 三、编程题 1. 输入一个整数,判断这个整数是奇数还是偶数(提示:整数的奇偶性可以利用取余运算符%判定)。 #include } 2. 编写程序,输入一个24小时制的时间,转换为12小时制时间后进行输出。以13点15分为例,输入: 13:15,则输出:下午1:15。 #include 3. 输入年号,判断它是否是闰年(如果年号能被400整除,或能被4整除,而不能被100整除,则是闰 年,否则不是)。 void main() { int year; scanf(\"%d\ if (year%400==0||(year%4==0&&year%100==0)) printf(\"%d是闰年\\n\ else printf(\"%d不是闰年\\n\ } 4. 输入一个字符,如果是大写字母则输出对应的小写字母,如果是小写字母则输出相应的大写字母,如 果都不是则原样输出。 #include } scanf(\"%c\if(ch>='a'&&ch<='z') ch-=32; else if(ch>='A'&&ch<='Z') ch+=32; printf(\"\\n%c\\n\ 5. 设计一个简单的计算器程序,能输入整型运算数和基本运算符(+,-,*,/),输出计算结果。例如: 输入2+6,输出2+6=8。 #include printf(\"=%f\ default: printf(\"error due to the illegal input!\\n\"); } } 第五章 一、选择题 1. 若变量已正确定义,有以下程序段 i=0; do printf(\"%d,\printf(\"%d\\n\其输出结果是( B )。 A.0,0 A.n=0; B.0,1 C.1,1 D.程序进入无限循环 2. 以下不构成无限循环的语句或语句组是 ( A )。 B.n=0; while(1) {n++;} D.for(n=0,j=1; ;i++) n+=i do{++n;} while(n<=0) C.n=10; 3. 有以下程序 #include while(n); {n--;} {int y=9; for( ;y>0;y--) if(y%3= =0) printf(\"%d\} 程序的运行结果是( C )。 A.741 B.963 C.852 4. 有以下程序 #include { if (x%3) {printf(\"%d,\ printf(\"%d,\ } } 程序的运行结果是( D )。 A. 7,4,2 B. 8,7,5,2, C.9,7,6,4, 5. 有以下程序 #include {int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf(\"%d\\n\} 程序的运行结果是( B )。 A.0 B.1 C.2 D.3 6. 有以下程序 main() {int i,j; for(i=1;i<4;i++) {for(j=i;j<4;j++) printf(\"%d*%d=%d\printf(\"\\n\"); } } 程序运行后的输出结果是( B )。 A.1*1=1 1*2=2 1*3=3 B.1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C.1*1=1 D.1*1=1 1*2=2 2*2=4 2*1=2 2*2=4 1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 二、填空题 D.8721 D.8,5,4,2, 1. 若有定义:int k;,以下程序段的输出结果是 ##2##4 。 for(k=2;k<6;k++,k++) printf(\"##%d\ 2. 当执行以下程序时,输入12345670<回车>,则其中while循环体将执行 0 次。 #include while((ch=getchar())==’0’) printf(\"#\"); } 3. 以下程序的输出结果是 _321_ 。 #include { int n=12345,d; while(n!=0){ d=n%10; printf(\"%d\} 4. 以下程序的输出结果是_ _ACE_ _____。 #include for(i='a';i<'f';i++,i++) printf(\"%c\printf(\"\\n\"); } 5. 以下程序的输出结果是 1 。 #include { int i,j,sum; for(i=3;i>=1;i--) { sum=0; for(j=1;j<=i;j++) sum+=i*j; } printf(\"%d\\n\} 三、编程题 1. 编写程序,显示100~200之间能被7除余2的所有整数。 #include \"stdio.h\" main() { int i; for(i=100;i<=200;i++) { if(i%7==2) } 2. 输入n个整数,求这n个整数中的最大数、最小数和偶数平均数,并输出。 #include printf(\"\%d\\ } void main() { int i,n,data,max=0,min=0,even=0,evennumber=0; printf(\"Please input the number of data:\"); scanf(\"%d\ printf(\"Please input the data:\\n\"); scanf(\"%d\ max=data; min=data; if (data%2==0) { } for(i=1;i 3. 输入一串字符,以回车作为结束标志。统计并输出这串字符中大写字母、小写字母和数字字符的个数。 #include int upper=0,lower=0,number=0; char letter; while((letter=getchar())!='\\n') { } if (letter>='a'&&letter<='z') lower++; else if (letter>='A'&&letter<='Z') upper++; else if (letter>='0'&&letter<='9') number++; max is %d\\nThe min is %d\\n The average of even is %5.2f\\n\ scanf(\"%d\if (data>max) else { } even=even+data; evennumber++; if (data if (data%2==0) printf(\"the number of uppercase is:%d\\n\ printf(\"the number of lowercase is:%d\\n\ printf(\"the number of number is:%d\\n\} 4. 输出九九乘法表。 #include for(i=1;i<=9;i++) { } } 5. 编写程序,输出3~1000之间全部素数。 #include int k,data,tag; for(data=3;data<=1000;data++) //外层循环,用来产生2~1000之间的整数 { { if (data%k==0) tag=1; } } 6. 输入一个三位数,判断其是否是“水仙花数”。水仙花数是指3位数中的各位数字的立方和等于这3 位数本身。如153=1*1*1+5*5*5+3*3*3。 #include\"stdio.h\" void main() { int S, a, b, c; printf(\"请输入一个3位数:\"); } if (tag==1) printf(\"%4d\如果i是素数,则输出 tag=0; //tag用于表示数i是否是素数,没有判断前先假定是素数 for(k=2;k<=sqrt(data)&&!tag;k++) //内层循环用来判断data是否有约数 for(j=1;j<=i;j++) printf(\"%d*%d=%-3d \ printf(\"\\n\"); scanf(\"%d\ a=S/100; b=S%100/10; c=S%10; if(a*a*a+b*b*b+c*c*c==S) } 7. 编程求Fibonacci数列的前40个数。该数列的生成方法是:F1=1,F2=1,Fn=Fn-1+Fn-2(n>=3)(即从第三个 数起,每个数等于前2个数之和)。 方法1: #include \"stdio.h\" void main() { int f0,f1,f2,n; f0=1; f1=1; printf(\"Fibonacci数列的前40个数是:%d\%d\\ for(n=2;n<40;n++) { } 方法2: #include \"stdio.h\" void main() { int f[40],n; f[0]=1; f[1]=1; printf(\"Fibonacci数列的前40个数是:%d\%d\\ for(n=2;n<40;n++) { } } 8. 一个穷人找到一个百万富翁,给他商讨一个换钱计划如下:我每天给你十万元,而你第一天只需给我 一元钱,第二天给我二元钱,第三天给我四元钱,„„,即我每天都给你十万元,你每天给我的钱都是前一天的两倍,直到满一个月(30天)。百万富翁很高兴地接受了这个换钱计划。请编写程序计算满一个月时,穷人给了富翁多少钱,而富翁又给了穷人多少钱。 #include f[n]=f[n-1]+f[n-2]; printf(\"%d\\f2=f0+f1; printf(\"%d\\f0=f1; f1=f2; printf(\"%d是水仙花数。\printf(\"%d不是水仙花数。\\n\ else { } 9. 猴子吃桃问题。猴子第一天摘下若干桃子,立即吃了一半,不过瘾又多吃了一个。第二天早上又将剩 下的桃子吃了一半,又多吃了一个。以后的每天早上都是吃了前一天剩下的一半加一个。到第10天早上时只剩下一个桃子了。编写程序,求猴子第一天共摘了多少桃子。 /************************************************************************/ /*有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个*/ /* 到了第10天就只余下一个桃子。(C语言实现) */ /*用多种方法实现求出原来这群猴子共摘了多少个桃子。 */ /************************************************************************/ /*运行环境:VC++6.0 */ /************************************************************************/ #include \"stdio.h\" main() { int i,j,k; /*j是最后的桃子数,k是中间变量,也是桃子总数*/ j = 1; for(i=9;i>0;i--) { k = (j + 1) * 2; j = k; } printf(\"%total=%d\\n\} printf(\"Money of poor giving rich is %ld\\nMoney of rich giving poor is %ld\\n\long poor=100000,rich=1,i; for(i=2;i<=30;i++) { } poor=poor+100000; rich=rich*2; 第六章 一.1.C 2.A 3.A 4.C 5.B 6.C 7.D 8.A 9.C 二.1.20,b[0],b[19],b(或者&b[0]),20*4 2 数组名
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务