C语言经典作业题
- 格式:doc
- 大小:67.50 KB
- 文档页数:13
C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、 C程序的每行中只能写一条语句。
C、 C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。
C语言百道练习题一、填空题1.C源程序的基本单位是【函数】。
2.一个C源程序至少应该包含一个【main函数】。
3.在一个C源程序中,注释用的分界符是【//】或【/* */】。
4.在C语言中,标准输入操作的库函数是由【scanf()】完成的,标准输出操作的库函数是由【printf()】完成的。
5.在C语言中,标识符只能由【字母】、【数字】和【下划线】组成,且首字符必须是【字母或下划线】。
6.x为double类型,代数式的C语言表达式是【sqrt(pow(sin(x),2.5))】。
7.数学中一元二次议程的求根公式的C语言表达式为(-b+sqrt(b*b-4*a*c) )/(2*a) 或(-b-sqrt(b*b-4*a*c) )/(2*a) 。
8.梯形的面积公式的C语言表达式为 1.0/2*(a+b)*h 。
9.已知:char a=' a',b=' b',c=' c',i;(已知a的ASCII码值为97)则表达式i=a+b+c的值为294 。
10.C语言中,指针运算符有* 和& 两个。
11.已知int a=12,n=5;则:表达式运算后a和n的值各为0,0 。
a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a12.复合语句是用一对{ } 界定的语句块。
13.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:#include <stdio.h> 。
14.C语言提供三种逻辑运算符,按优先级高低它们分别是! ,&& ,|| 。
15. 将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式(y%4==0&&y%100!=0) ||(y%400==0) 。
16. 已知A=7.5,B=2,C=3.6,表达式A>B && C>A || A<B && !C>B的值是F/假。
C语言练习题(带答案)-绝对经典题目不看后悔————————————————————————————————作者:————————————————————————————————日期:1单选题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。
一,闰年问题#include<stdio.h>void main(){int a;printf("please input the data of years:");scanf("%d",&a);if(a%400==0||(a%4==0&&a%100!=0))printf("\n闰年:%d",a);}二,数字整除问题#include<stdio.h>void main(){int a=1,i=0;printf("能被7整除的数:\n");while(a<=100){if(a%7==0){printf("%4d",a);i++;if(i%5==0)printf("\n");}a++;}}三,五层递加三角#include<stdio.h>void main(){int a,b,n=1;while(n<=5){a=1,b=1;while(a<=5-n){printf(" ");a++;}while(b<=2*n-1){printf("*");b++;}printf("\n");n++;}}四,水仙花数#include<stdio.h>void main(){int a,m,n,q,p=1;a=100;while(a<1000){m=a/100;n=a/10-m*10;q=a-m*100-n*10;if(a==m*m*m+n*n*n+q*q*q){printf("%5d",a);if(p%2==0)printf("\n");p++;}a++;}}五,最小公倍数#include<stdio.h>int gy(int x,int y){int r;if(x<y){r=x;x=y;y=r;}r=x%y;while(r!=0){x=y;y=r;r=x%y;}return (y);}int gb(int m,int n){int p;p=m*n/gy(m,n);return (p);}void main(){int a,b,c;printf("please enter the data you want to handle:");scanf("%d,%d",&a,&b);c=gb(a,b);printf("%d",c);}六,1+1/3+1/5.....#include<stdio.h>void main(){int n,i;float sum=0.0;scanf("%d",&n);i=1;while(i<=n){sum +=___1.0/(2*i-1);i++;}printf("%.3f",sum);}七,1+1/(1+2)+1/(1+2+3).....#include<stdio.h>void main(){int a,b,c=0;float d=0.0;a=1;scanf("%d",&b);while(a<=b){c+=a;a++;d+=1.0/c;}printf("%d\n",c);printf("%.3f",d);}八,1/(1*2*3*4....*b)#include<stdio.h>void main(){int a,b,c=1;float d;scanf("%d",&b);a=1;while(a<=b){c*=a;a++;d=1.0/c;}printf("%d\n",c);printf("%.3f\n",d);}九,从大到小排列数组,求和,取极差#include<stdio.h>void main(){int a[10],m=0,i,j,t,c;float d=0.0;while(m<10){scanf("%d",&a[m]);m++;}for(i=0;i<10;i++)printf("%3d",a[9-i]);printf("\n");for(i=0;i<10;i++)for(j=0;j<9-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<10;i++)printf("%3d",a[i]);c=a[0]-a[9];printf("\n%d",c);for(i=0;i<10;i++)d+=a[i];printf("\n%.3f",d/10.0);}十,矩阵转置及其元素最大值#include<stdio.h>void main(){int i,j,a[2][3],b[3][2],max;for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<2;i++){for(j=0;j<3;j++)printf("a[%d][%d]=%d ",i,j,a[i][j]);printf("\n");}for(i=0;i<2;i++){for(j=0;j<3;j++){b[j][i]=a[i][j];}}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("b[%d][%d]=%2d ",i,j,b[i][j]);printf("\n");}max=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++){if(max<a[i][j])max=a[i][j];}printf("max=%d",max);}十一,矩阵对角线元素和#include<stdio.h>void main(){int i,j,m=0,a[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("a[%d][%d]=%2d ",i,j,a[i][j]);printf("\n");}printf("对角线之和为:");for(i=0;i<3;i++)m+=a[i][i];printf("%d",m);}十二,斐波那契数列#include<stdio.h>void main(){int fib[20]={1,1};int i;for(i=2;i<20;i++)fib[i]=fib[i-1]+fib[i-2];for(i=0;i<20;i++){if(i%5==0)printf("\n");printf("%5d",fib[i]);}}十三,杨辉三角#include<stdio.h>void main(){int a[10][10],i,j;for(i=0;i<10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<10;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j]+a[i-1][j-1];for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}十四,101-200之间的素数#include<stdio.h>void main(){int sum,num,i;for(num=101;num<=200;num++){sum=0;for(i=2;i<num;i++){if(num%i==0)sum++;}if(sum==0)printf("%5d",num);}}#include<stdio.h>void main(){int i,j,k;for(i=0;i<=20;i++)for(j=0;j<=33;j++)for(k=0;k<=99;k=k+3)if((i+j+k==100)&&(15*i+9*j+k==300))printf("i=%d j=%d k=%d\n",i,j,k);}十六,猴子吃桃#include<stdio.h>void main(){int x1,x2=1,day;for(day=9;day>0;day--){x1=2*(x2+1);x2=x1;}printf("第一天的桃子数:%d\n",x1);5.1 用π/4≈1-1/3+1/5-1/7+…公式求π的值,直到某一项的绝对值小于10-6为止。
C语言程序设计习题授课对象:信息奥赛辅导成员授课时间:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?__________________________________________________________________程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…。
___________________________________________________________________程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf(“%12ld %12ld”,f1,f2);if(i%2==0)printf(“\n");/*控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/}}上题还可用一维数组处理,you try!题目:判断101—200之间有多少个素数,并输出所有素数。
__________________________________________________________________程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
___________________________________________________________________程序源代码:#include “math。
h”main(){int m,i,k,h=0,leap=1;p rintf(“\n”);for(m=101;m〈=200;m++){ k=sqrt(m+1);for(i=2;i〈=k;i++)if(m%i==0){leap=0;break;}if(leap){printf(“%-4d”,m);h++;if(h%10==0)printf(“\n");}leap=1;}printf(“\nThe total is %d”,h);}题目:打印出所有的“水仙花数",所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
哈工大 2006 年 春 季学期C 语言 试题和卷面笔试成绩各自所占比例折合后累加计算。
一、单项选择题:(10分,每题2分)1.以下对一维数组的定义中,正确的是: 。
A) #define MAX 5 B) int MAX=5;int a[MAX]; int a[MAX];C) int MAX; D) #define MAX 5;Scanf(“%d ”,&MAX); int a[MAX];int a[MAX];2.以下程序运行时输入8,则程序运行后t 的值是: 。
main(){ int t;scanf(“%d ”,&t);if(t-->=8)printf(“%d \n”,t --) ;elseprintf(“%d\n ”,t++) ;}A)9 B)8 C)7 D)63.有以下程序段main(){ int i=1,sum=0,n;scanf(“%d”,&n);do{ i+=2;sum+=i ;}while(i!=n);printf(…%d”,sum);}若使程序的输出值为8,则应该从键盘输入的n 的值是: 。
A) 1 B) 3 C) 5 D) 74.若有以下定义及语句:struct s1{char a[3];int num;}t={…a‟,‟b‟,‟c‟,4},*p;p=&t;则输出值为c的语句是________。
A) printf(“%c\n”,p->t.a[2]);B) printf(“%c\n”,(*p).a[2]);C) printf(“%c\n”,p->a[3]);D) printf(“%c\n”,(*p).t.a[2]);5.C语言规定:在一个源程序中,main函数的位置。
A)必须在程序的最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在程序的最后二、写出下列程序的运行结果。
(10分,每题2分) 1.#include <stdio.h>main(){int i,j;for(i=1; i<=3; i++){ for(j=i; j>=1; j--)printf("* “);printf("\n“);}}运行结果是:2.#include <stdio.h>main(){int a,b,c;scanf("%2d%2d%*2c%2d",&a,&b,&c);printf("%d\n", a+b-c);}程序执行时从键盘输入:54457766↙运行结果是:3.#include <stdio.h>#include <string.h>main(){char *p=”abcde”,a[20]=”ABC”,*q=a;p+=3;printf(“%s\n”,strcat(q,p));}运行结果是:4.#include <stdio.h>int fun(){auto int x=1;static int y=1;x+=2;y+=2;return x+y;}main(){int a,b;a=fun();b=fun();printf(“%d,%d\n”,a,b);}运行结果是:5.#include <stdio.h>main(){ int k=0;char c=‟A‟;do{ switch(c++){ case …A‟: k++; break;case …B‟: k--;case …C‟: k+=2; break;case …D‟: k=k%2; continue;case …E‟: k=k*10; break;default: k=k/3;}k++;}while(c<‟G‟);printf(“k=%d\n”,k);}运行结果是:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。
苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。
某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。
要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。
#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。
#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。
1若定义如下变量和数组:int i;*pstatic int a[10] ={1,2,3,4,5,6,7,8,9,10};p=a;则执行下面的语句输出结果是【】。
for(i=3;i<6;i++) printf(“%d”,*(p+i));A) 3 4 5 6 B) 1 2 3 C) 4 5 6 D)3 6 9 2若定义如下变量和数组:int i;static int x[3][3]={1,2,3,4,5,6,7,8,9};则执行下面的语句输出结果是是【】。
for(i=0;i<3;i++)(printf(“%d”,x[i][i]);A) 3 5 7 B) 1 4 7 C) 1 5 9 D)3 6 93若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10}则取元素值6的表达式是【】。
A) *p+6B) *(p+6)C) *p+=5D)p+54下列选项中,不正确的赋值语句是【】A)++j;B) n1=(n2=(n3=0));C) k=i==j;D)a=b+c=15下面程序运行时的输出结果是【】main(){int a=5;printf("\na=%d", ++a+2);}A) a=6 B) 8 C) a=5 D) a= 86下面程序的循环结束后i的值是【】main(){int i;for(i=0;i<10;i++) ;printf("\n%d", i);} ;A) 11 B) 9 C)10 D) 287C语句printf(“y=%d”,(9^2*8+3) % 3*4);运行输出的结果是【】.A) y=0B) y=3C) 8D)y=88判断字符型变量s1的值在…0‟到…9‟之间,正确的表达式是【】A)(s1>=‟0‟) & (s1<=‟9‟)B)(s1>=‟0‟) and (s1<=‟9‟)C)(…0‟<=s1<=‟9‟)D)(s1<=‟9‟) && (s1>=‟0‟)9根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为【】main(){char ch1,ch2,ch3;输入语句printf("%c%c%c",ch1,ch2,ch3);}输入形式:A B C输出形式:A BA) scanf("%c%c%c",&ch1,&ch2,&ch3);B) scanf("%c,%c,%c",&ch1,&ch2,&ch3);C) scanf("%c %c %c ",&ch1,&ch2,&ch3);D) scanf("%c%c",&ch1,&ch2,&ch3);10若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是【】A) scanf("%d%lx,%le",&x,&y,&z);B) scanf("%2d*%d,%lf",&x,&y,&z);C) scanf("%x%*d,%o",&x,&y);D)scanf("%x%o%6.2f",&x,&y,&z);1.下面程序输出的结果是【】。
#include<stdio.h>main(){ int m,n,o,a=2,b=3;m=(++a==--b)?-a:++b;n=++a;o=b;printf(“m=%d,n=%d,o=%d”,m,n,o);}A) m=4,n=4,o=3B) m=4,n=3,o=4C) m=3,n=4,o=4D) m=3,n=4,o=32、下面程序输出的结果是【】。
#include<stdio.h>#define SUB(x,y) (x)*ymain(){ int a=3,b=4;printf(“%d”, SUB(a++,++b));}A)12 B)15 C)20 D)163.若有下面的定义语句:static char str[]={“abcd”}, *string;下面的语句不正确的是【】A) string=”123”;B)str=”aaaa”;C)*(str+2)=‟1‟;D)string=str;4若有宏定义#define MOD(x,y) x%y则执行以下语句后的输出为【】int z,a=15,b=100;z=MOD(b,a);printf("%d\n",z++);A) 11B) 10C) 6D) 宏定义不合法5在宏定义#define FUN(a) a*a中,宏展开FUN(a)中的a用一个【】代替。
A)赋值语句B)指针变量C)字符串D) 实参值6若j为整型变量,则以下循环执行次数是【】for(j=2;j==0; ) printf(“%d”,j--);A)无限次B)0次C)1次D)2次7执行语句for(j=1;j++<4; );后变量j的值是【】A)3 B)4 C)5 D)不定8若a=2, b=3; 则语句:printf(“%d”,(a=2)&&(b=2));的输出结果是【】A)无输出B)结果不确定C)0 D)19设有如下的变量定义:int i =8,k ,a,b ;unsigned long w=5;double x=1,42,y=5.2;则以下符合C语言语法的表达式是【】A) a=a+=(b=4)*(a=3) B) x%(-3);C ) a=a*3=2 D) y=float(i)10假定有以下变量定义:int k=7 ,x=12;则能使值为3的表达式是【】A ) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)- (k%=5)11设x,y,z,t均为int型变量,则执行以下语句后,t的值为【】x=y=z=1;t=x||y&&z;A)不定值B)2 C)1 D)012下面程序的执行结果是【】main( ){int i, j, m, n;i=8; j=10;m=++i; n=j++;printf(“%d, %d, %d, %d”, i, j, m, n,);}A) 9, 10, 9, 10 B)9, 11, 9, 10 C)9, 11, 9, 11 D)9, 10, 9, 1113下面程序的执行结果是【】main(){ int a,b;a=20;b=10;a+=a+b;a-=a-b;printf("%d\n",a);}A) 10 B) -10 C) 30 D) 014下面程序的执行结果是【】main(){ int x,a=1,b=2,c=0;x=-a||b&&++c;printf("%d\n",x);}A) 1 B) 0 C) -1 D) 非零值15设有程序段int k=10;while(k=0) k=k-1;下面描述正确的是【】A)While循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次16下面程序的执行结果是【】main(){int x=10;do {x--;} while( --x);printf("%d\n",x--);}A) 0 B) -1 C) 1 D) 817)120.设说明为int a=1; 执行下列switch语句后,b获值为2的是【】。
A. switch (a) {B. switch (a) {case 1: b=1; case 1: b=1;case 2: b=2; case 2: b=2; break;default: b=3; default:b=3:} }C. switch (a) {D. switch (a) {case 1: b=1;break; case 1: b=1; break;case 2: b=2;break; case 2: b=2;default:b=3;break; default:b=3;} }18设程序为int i,j,n;for (i=1;i<=10;i++){n=0;for (j=1;j<=10;j++)n=n+j;}printf(“n=%d\n”,n);运行后输出n的值是【】。
A) 5500 B) 5050 C) 55 D) 500019有如下程序main( ){char a[10]={“123456789”};char *p; int i=8;p=a+i;printf(“%s\n”,p-3);}运行后的输出结果是【】。
A) 6 B) 6789 C)‟6‟ D) 78920以下程序的输出结果是【】viod fun (int a,int b,int c){a=456;b=567;c=678;}main(){int x=10,y=20,z=30;fun (x,y,z);printf(“%d,%d,%d\n”,x,y,z);}A)30,20,10 B) 10,20,30 C)456,567,678 D) 678,567,456 21以下程序运行后,输出结果是【】main(){char *s=“abcde”;s+=2;printf(“%s\n”,s);}A ) cde B)c C) 字符C的地址D) 出错22设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行以下语句后,z的值为【】z=2*(N+Y(5+1));等价于z=2*(N+(N+1)*5+1);N=3带入A) 出错B)42 C) 48 D) 5423以下程序执行输出结果是【】main(){int a,,b,k=3,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+6;printf(“%d,%d\n”,a,b);}A)0,6.5 B)1,6 C)0,6 D) 6,6.524下面程序的输出是【】fun3(int x){static int a=3;a+=x;return(a);}main(){int k=2,m=1,n;n=fun3(k);n=fun3(m);printf(“%d\n”,n);}A)3 B)4 C)6 D)925有以下程序段int k=0while(k=1) k++;while 循环执行的次数是【】A) 无限次B) 有语法错,不能执行C)一次也不执行D) 执行1次26有如下程序main( ){ int x=1,a=0,b=0;switch (x){ case 0: b++;case 1: a++;case 2: a++; b++;}printf(“a=%d,b=%d\n”,a, b);}该程序的输出结果是【】A)a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=227下面程序的输出结果是【】A)0 B) 1 C) 10 D) 9main(){ int a[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}28下面程序的运行结果是【】#define ADD(x) x+xmain(){ int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}A) sum=9 B) sum=10 C) sum=12 D) sum=1829139. 以下程序的输出结果是【】main(){ int i, y[3][3]={1,2,3,4,5,6,7,8,9};for(i=2;i>=0;i--) printf("%d,",y[i][ i]);}A) 1,5,9 B) 3,4,7 C) 9,5,1 D)7,4,330以下程序运行结果是【】。