C语言100题及答案
计算机二级C语言上机试题库和答案解析(100套)

完美WORD格式计算机二级 c 语言上机题库及答案内部资料,切勿外传!.第 1 套填空题请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>longfun(int n){if ( 1 )return (n*fun( 2));return 3;}main(){printf("10!=%ld\n", fun(10));}第 1 处填空:n>1 或 1<n第 2 处填空:n-1第 3 处填空:1 或 11 或 1L改错题下列给定程序的功能是:读入一个整数 K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数 2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(intn);{int i,m;m =1;/********found********/for (i=2; i<n;i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %dis(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第 1 处:Isprime(int n);应改为Isprime(int n)第 2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
100条经典C语言笔试题目(全)

100条经典C语言笔试题目1、请填写bool,float,指针变量与“零值”比较的if语句。
提示:这里“零值”可以是0,0.0,FALSE 或者“空指针”。
例如int变量n与“零值”比较的if语句为:if ( n == 0 )if ( n != 0 )以此类推。
(1)请写出 bool flag 与“零值”比较的 if 语句:【标准答案】if ( flag )if ( !flag )(2)请写出 float x 与“零值”比较的 if 语句:【标准答案】 const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
(3)请写出 char *p 与“零值”比较的 if 语句【标准答案】 if (p == NULL)if (p != NULL)2、以下为 Linux下的 32 位 C程序,请计算 sizeof 的值。
char str[] = “Hello” ;char *p = str ;int n = 10;请计算(1)sizeof (str ) =(2)sizeof ( p ) =(3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) {……;} 请计算 sizeof( str ) = (5)void *p = malloc( 100 );请计算sizeof ( p ) =【标准答案】(4)4、(5)43、 long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。
4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针 ;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20.data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52。
C语言必考100题解析

C语⾔必考100题解析1.按下述格式,从键盘输⼊⼀个整数加法表达式:操作数1+操作数2,然后计算并输出表达式的计算结果,形式如下:操作数1+操作数2=计算结果。
2.输⼊两个整形数并打印,如果⽤户不慎输⼊了⾮法字符,那么程序提⽰“输⼊数据类型错误”。
3.已知三⾓形的三边长a,b,c,要求编写程序,从键盘输⼊a,b,c的值,计算并输出三⾓形的⾯积(注意不存在的情况)。
4.编程从键盘输⼊圆的半径r,计算并输出圆的周长和⾯积。
5.任意从键盘输⼊⼀个三位整数,要求正确分离它的个位,⼗位和百位数,并分别在屏幕上输出。
6.写⼀个函数实现统计⼀个输⼊的整形数的位数。
7.编程计算⽅程ax*x+bx+c=0的根,a,b,c由键盘输⼊,只是⽤主函数来实现。
8.编写三个函数,分别在b*b-4*a*c⼤于0、⼩于0、等于0时进⾏调⽤,并输出结果,在主函数中读⼊a、b、c的值。
9.从键盘输⼊你和你朋友的年龄,变成判断谁的年龄⼤,并打印最⼤者的年龄。
10.从键盘输⼊⼀个年份,判断该年是否是闰年,并输出结果。
11.判断某⼈是否属于肥胖体型。
根据⾝⾼与体重因素,医务⼯作者经⼴泛的调查分析给出了以下按“体指数”对肥胖程度的划分:体指数t=w/h*h(w为体重,单位为kg,h为⾝⾼,单位为m)。
当t<18时,为低体重;当t介于18和25之间时,为正常体重;当t介于25和27之间时,为超重体重;当t≧27时,为肥胖。
编程从键盘输⼊你的⾝⾼h和体重w,根据上式,判断体重类型。
12.利⽤switch语句将百分制成绩转化为五分制成绩。
13.利⽤switch语句将五分制成绩转换成对应分数范围并输出。
14.编程设计⼀个简单的计算器程序,要求根据⽤户从键盘输⼊的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。
15.利⽤时间函数编写⼀个猜数程序。
16.编程实现计算n的阶乘。
17.利⽤函数递归实现计算n!。
18.利⽤π/4=1-1/3+1/5-1/7……计算π的值直到最后⼀项的绝对值⼩于0.0001为⽌,要求统计总共累加了多少项。
计算机二级C语言编程题库(100题)

2011,2012年上机题100题库1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int*a,int*n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3:第3题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x,int pp[],int*n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char*tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char*tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case‘a’:pp[0]++;break;case‘b’:pp[1]++;break;case‘c’:pp[2]++;break;case‘d’:pp[3]++;break;case‘e’:pp[4]++;break;case‘f’:pp[5]++;break;case‘g’:pp[6]++;break;case‘h’:pp[7]++;break;case‘i’:pp[8]++;break;case‘j’:pp[9]++;break;case‘k’:pp[10]++;break;case‘l’:pp[11]++;break;case‘m’:pp[12]++;break;case‘n’:pp[12]++;break;case‘o’:pp[14]++;break;case‘p’:pp[15]++;break;case‘q’:pp[16]++;break;case‘r’:pp[17]++;break;case‘s’:pp[18]++;break;case‘t’:pp[19]++;break;case‘u’:pp[20]++;break;case‘v’:pp[21]++;break;case‘w’:pp[22]++;break;case‘x’:pp[23]++;break;case‘y’:pp[24]++;break;case‘z’:pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
c语言c语言考试题库及答案

c语言c语言考试题库及答案 一、单项选择题(每题2分,共20分) 1. C语言中,以下哪个关键字用于声明函数? A. int B. void C. return D. function 答案:A
2. 在C语言中,以下哪个是正确的字符串字面量? A. "Hello, World!" B. 'Hello, World!' C. hello world D. "hello world" 答案:A
3. 下列哪个选项是C语言中的合法整型常量? A. 0x1A B. 1.0e2 C. 0b1010 D. 07 答案:A
4. C语言中,以下哪个运算符用于逻辑“与”操作? A. && B. || C. & D. | 答案:A 5. 在C语言中,以下哪个选项是正确的数组声明? A. int array[10]; B. int array[]; C. int [10] array; D. int array=10; 答案:A
6. C语言中,以下哪个关键字用于跳过当前循环的迭代? A. break B. continue C. return D. exit 答案:B
7. 在C语言中,以下哪个函数用于计算并返回字符串的长度? A. strlen() B. length() C. size() D. sizeof() 答案:A
8. C语言中,以下哪个选项是正确的二维数组声明? A. int array[3][4]; B. int array[3][]; C. int array[][4]; D. int array; 答案:A
9. 下列哪个选项是C语言中的合法浮点型常量? A. 3.14 B. 3.14f C. 3.14L D. 3.14E 答案:A
10. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串? A. strcpy() B. strncpy() C. strcat() D. strncat() 答案:A
c语言面试题目100及最佳答案

c语言面试题目100及最佳答案1、请填写bool,float,指针变量与“零值”比较的if语句。
提示:这里“零值”可以是0,0.0,FALSE或者“空指针”例如int变量n与“零值”比较的if语句为:if(n==0)if(n!=0)以此类推。
(1)请写出boolflag与“零值”比较的if语句:【标准答案】if(flag)if(!flag)100条经典C语言笔试题目(2)请写出float某与“零值”比较的if语句:【标准答案】contfloatEPSINON=0.00001;if((某>=-EPSINON)&&(某<=EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
100条经典C语言笔试题目(3)请写出char某p与“零值”比较的if语句【标准答案】if(p==NULL)if(p!=NULL)2、以下为Linu某下的32位C程序,请计算izeof的值。
chartr[]=“Hello”;char某p=tr;intn=10;请计算(1)izeof(tr)=(2)izeof(p)=(3)izeof(n)=【标准答案】(1)6、(2)4、(3)4(4)voidFunc(chartr[100]){……;}请计算izeof(tr)=(5)void某p=malloc(100);请计算izeof(p)=【标准答案】(4)4、(5)44、用变量a给出下面的定义e)一个有10个指针的数组,该指针是指向一个整型数的;f)一个指向有10个整型数数组的指针;g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int某a[10];f)int(某a)[10]g)int(某a)(int);h)int(某a[10])(int)5、设有以下说明和定义:typedefunion{longi;intk[5];charc;}DATE;tructdata{intcat;DATE cow;doubledog;}too;DATEma某;则语句printf("%d",izeof(tructdate)+izeof(ma某));的执行结果是:_____【标准答案】DATE是一个union,变量公用空间.里面最大的变量类型是int[5],占用20个字节.所以它的大小是20data是一个truct,每个变量分开占用空间.依次为int4+DATE20+double8=32.所以结果是20+32=52.当然…在某些16位编辑器下,int可能是2字节,那么结果是int2+DATE10+double8=206、请问以下代码有什么问题:intmain(){chara;char某tr=&a;trcpy(tr,“hello”);printf(tr);return0;}【标准答案】没有为tr分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。
c语言面试题目100及最佳答案
c语言面试题目100及最佳答案1. 介绍C语言的基本数据类型和其范围。
C语言的基本数据类型有char、int、float和double。
它们的范围分别如下:- char: -128到127- int: -32768到32767- float: 3.4e-38到3.4e+38- double: 1.7e-308到1.7e+3082. 什么是指针(Pointer)?请解释指针的作用。
指针是一个变量,其值为另一个变量的地址。
它的作用是用于在程序中动态地分配内存、传递函数参数和实现复杂数据结构,如链表和树。
3. 请解释C语言中的自动变量和静态变量的区别。
自动变量是在函数内部声明的变量,在函数结束时会被销毁。
而静态变量是在函数内或函数外声明的变量,它的值在函数调用之间保持不变。
4. 解释什么是递归函数?递归函数是一个可以调用自身的函数。
在递归函数中,函数会反复调用自己,直到满足终止条件为止。
5. 请解释C语言中的位运算符。
C语言中的位运算符包括与(&)、或(|)、异或(^)、取反(~)、左移(<<)和右移(>>)运算符。
这些运算符用于对二进制数的位进行操作,常用于位掩码和位操作等场景。
6. 什么是结构体?结构体是一种用户自定义的数据类型,它可以包含不同类型的数据成员。
通过结构体,我们可以将多个不同的变量组合在一起,形成一个逻辑上的整体。
7. 解释C语言中的动态内存分配。
动态内存分配是指在程序运行时根据需要动态地分配内存空间。
C 语言中的动态内存分配函数包括malloc、calloc和realloc,通过这些函数可以在程序运行时根据需求分配或释放内存。
8. 请解释C语言中的头文件和库文件的作用。
头文件包含一组函数声明、宏定义和结构体声明等信息,用于在源文件中引用。
库文件则包含已编译的函数实现和数据,通过链接库文件可以在程序中使用这些函数和数据。
9. 什么是指针数组和数组指针?指针数组是一个数组,每个元素都是指针类型。
专升本C语言100题及答案
专升本C语言100题及答案高职升本计算机基础复材料—C语言精编100题C语言精编1题一、单选题1.由C语言编写的代码程序( )A.可直接执行B.是一个源程序D.经过编译解释才能执行C.经过编译即可执行2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A.大写字母B.中划线C.数字字符D.下划线3.下列选项中,不能用作标识符的是( )A. _1234_B. _1_2C. int_2_D. 2_int_4.以下选项中合法的用户标识符是( )XXX.以下不能定义为用户标识符的是( )A. MainB. _0C. _intD. sizeof6.下列定义变量的语句错误的是( )A. int _int;B. double int_;C. char For;D. float US$;7.在C语言中,合法的实型常数是( )A. 5E2.0B. E-3C. 2E0D. 1.3E8.在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.EC. 5E-3D. E159.以下选项中,不克不及作为正当常量的是( )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010.以下不合法的数值常量是( )A. 011B. le1C. 8.0E0.5D. 0xabcd11.在C语言中,非法的字符常量是( )A.‘\t’B.‘\17’C. "\n"D.‘\xaa’12.以下不合法的字符常量是( )A.‘\018’B.‘\"’C.‘\\’1D.‘\xcc’高职升本计算机基础复材料—C语言精编100题13.以下运算符中优先级最高的运算符是()( )A. <=B. =C. %A. ==B. /C. =14.以下程序的输出结果是( )main(){ int a=3,b=4;printf("%d\n",a<=b);}A. 3B. 4C. 115.在C语言中,以下非法的表达式是( )A. 0<=x<=100B. i=j==0C. (char)(65+3)16.在C语言中,以下非法的赋值语句是( )A. j++;B. ++(i+1);C. x=j>0;A. 4.3B. 4.8C. 3.318.设有语句:int a=3;则履行了语句a+=a-=a*a;变量a的值是()A. 3B. 0C. 919.设有语句:int x=10;则履行了语句x+=x-=x-x;变量x的值是()A. 10B. 20C. 4020.以下步伐的输出成效是( )( )( )( )( )⑴main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}A. 9,2B. 10,2C. 9,1⑵main(){ int a=12,b=12;printf("%d %d\n" ,--a,++b);} A. 10 10B. 12 12C. 11 10⑶main(){ int x=023;printf("%d\n",--x);}A. 17B. 18C. 23⑷main()2D. &&D. >=D. 0D. x+1=x+1D. k=i==j;D. 3.8D. -12D. 30D. 10,1D. 11 13D. 24高职升本计算机基础复材料—C语言精编100题{ int x=10,y=10;printf("%d %d\n",x--,--y);}A. 10 10⑸main(){ int i=010,j=10;printf("%d,%d\n",++i,j--);}A. 11,10B. 9,10C. 010,9D. 10,9B. 9 9C. 9 10D. 10 921.以下程序的输出结果是( ) main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200C. 100 200B. 100D)200 10022.以下程序的输出结果是( )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 323.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k++B. k+=1C. ++kD. k+124.以下步伐的输出成效是( )main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z); }A. 2,3,3B. 2,3,2C. 2,3,1D. 2,2,125.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )A. 1B. 2C. 3D. 426.设int x=-1;履行表达式++x||++x||++x||++x,x的值是( )A. 0B. 1C. 2D. 427.以下步伐的输出成效是3高职升本计算机基础复材料—C语言精编100题(1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}()A. k=11,k=12,k=11C. k=11,k=013,k=0xbB. k=11,k=13,k=13D. k=11,k=13,k=b(2) main(){ int k=17; printf("%d,%o,%x\n",k,k,k); }()A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,1128.运行时从键盘上输入<CR>(<CR>表示回车),则该程序的输出结果是()main(){ int a;float b,c;scanf("XXX",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}A. a=98,b=765,c=4321C. a=98,b=765.,c=4321.B. a=10,b=432,c=8765D. a=98,b=765.0,c=4321.029.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
计算机二级C语言上机题库及答案(100套)
~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
C语言概念题100(解答)
C语言概念题解答选编为了切实掌握C语言的基本概念,特列出有关内容的选择题和填充题等供读者参考。
读者在自学本材料时,希望读者先自已给出解答,然后再来阅读习题的参考解答。
单项选择题1.以下字符列中,能作为C程序自定义标识符的是① num(10) ② file_bak ③ break D class + 2【解】C语言规定,C程序的标识符的命名规则是要由英文字母或下线字符开头,由英文字母、下线字符和数字符构成的字符序列,并且不可以与C语言规定的保留字相同。
在供选择的答案中,选择①含有括号字符,不是标识符,它好象是函数调用表达式;选择②符合C语言关于标识符的构成规则,所以它可以作为标识符;选择③是C语言的保留字,它不可以再被程序设定为标识符;选择④是一个加法运算算术表达式,也不可以作为程序的标识符。
所以解答是②。
2.下列字符列中,不是C语言提供的合法关键字是① switch ② begin ③ case ④ default【解】因C语言的关键字表中没有begin,它不是C语言的关键字。
所以解答是②。
3.键盘符号是指如其标记所示能显示的字符。
下列字符中属于键盘符号的是① \ ② \n ③ \t ④ \b【解】键盘符号是指键盘上有标记,并能在显示器上直接以其标记字样显示的字符。
有许多键盘上有标记的符号,它们不是用于直接显示的,键入这种字符用于表示特定的意义,如常用的回车符。
为了能让C程序标记这种符号,程序采用转义字符的方式书写这种字符。
如‘\n’、‘\t’、‘\b’都不是键盘字符,在C语言中,它们都得用转义字符来表达。
只有字符‘\’才是键盘字符。
所以解答是①。
但在C程序中,反斜杠字符\ 已特别用作转义字符的引导符,它也得用转义字符的表达形式书写,将它写成’\\’。
4.下列字符列中,不是用来表达转义字符是① \\ ② \’③ 074 ④ \0【解】转义字符有三种书写形式:反斜杠字符后接上某个规定的字符;反斜杠字符后接上1至3个八进制数字符;反斜杠字符和字符x之后接上1至2个十六进制数字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 一、单选题 1. 由C语言编写的代码程序( ) A. 可直接执行 B. 是一个源程序 C. 经过编译即可执行 D. 经过编译解释才能执行 2. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( ) A. 大写字母 B. 中划线 C. 数字字符 D. 下划线 3. 下列选项中,不能用作标识符的是( ) A. _1234_ B. _1_2 C. int_2_ D. 2_int_ 4. 以下选项中合法的用户标识符是( ) A. long B. _2Test C. 3Dmax D. A.dat 5. 以下不能定义为用户标识符的是( ) A. Main B. _0 C. _int D. sizeof 6. 下列定义变量的语句错误的是( ) A. int _int; B. double int_; C. char For; D. float US$; 7. 在C语言中,合法的实型常数是( ) A. 5E2.0 B. E-3 C. 2E0 D. 1.3E 8. 在C语言中,合法的实型常数是( ) A. 1.2E0.5 B. 3.14159E C. 5E-3 D. E15 9. 以下选项中,不能作为合法常量的是( ) A. 1.234e04 B. 1.234e0.4 C. 1.234e+4 D. 1.234e0 10. 以下不合法的数值常量是( ) A. 011 B. le1 C. 8.0E0.5 D. 0xabcd 11. 在C语言中,非法的字符常量是( ) A.‘\t’ B.‘\17’ C. "\n" D.‘\xaa’ 12. 以下不合法的字符常量是( ) A.‘\018’ B.‘\"’ C.‘\\’ D.‘\xcc’ 13. 下列运算符中优先级最高的运算符是( )( ) A. <= B. = C. % D. && A. == B. / C. = D. >= 14. 以下程序的输出结果是( ) main() { int a=3,b=4; printf("%d\n",a<=b); } A. 3 B. 4 C. 1 D. 0 15. 在C语言中,以下非法的表达式是( ) A. 0<=x<=100 B. i=j==0 C. (char)(65+3) D. x+1=x+1 16. 在C语言中,以下非法的赋值语句是( ) 2
A. j++; B. ++(i+1); C. x=j>0; D. k=i==j; 17. 表达式3.6-5/2+1.2+5%2的值是( ) A. 4.3 B. 4.8 C. 3.3 D. 3.8 18. 设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( ) A. 3 B. 0 C. 9 D. -12 19. 设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( ) A. 10 B. 20 C. 40 D. 30 20. 以下程序的输出结果是( )( )( )( )( ) ⑴ main() { int i=10,j=1; printf("%d,%d\n",i--,++j);} A. 9,2 B. 10,2 C. 9,1 D. 10,1 ⑵ main() { int a=12,b=12; printf("%d %d\n" ,--a,++b);} A. 10 10 B. 12 12 C. 11 10 D. 11 13 ⑶ main() { int x=023; printf("%d\n",--x);} A. 17 B. 18 C. 23 D. 24 ⑷ main() { int x=10,y=10; printf("%d %d\n",x--,--y);} A. 10 10 B. 9 9 C. 9 10 D. 10 9 ⑸ main() { int i=010,j=10; printf("%d,%d\n",++i,j--);} A. 11,10 B. 9,10 C. 010,9 D. 10,9 21. 以下程序的输出结果是( ) main() { int x=100,y=200; printf("%d\n",(x,y)); } A. 200 B. 100 C. 100 200 D)200 100 22. 以下程序的输出结果是( ) main() { int x=10,y=3,z; printf("%d\n",z=(x%y,x/y));} A. 1 B. 0 C. 4 D. 3 3
23. int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( ) A. k++ B. k+=1 C. ++k D. k+1 24. 以下程序的输出结果是( ) main() { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } A. 2,3,3 B. 2,3,2 C. 2,3,1 D. 2,2,1 25. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( ) A. 1 B. 2 C. 3 D. 4 26. 设int x=-1;执行表达式++x||++x||++x||++x,x的值是( ) A. 0 B. 1 C. 2 D. 4 27. 以下程序的输出结果是 (1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}( ) A. k=11,k=12,k=11 B. k=11,k=13,k=13 C. k=11,k=013,k=0xb D. k=11,k=13,k=b (2) main(){ int k=17; printf("%d,%o,%x\n",k,k,k); }( ) A. 17,021,0x11 B. 17,17,17 C. 17,0x11,021 D. 17,21,11 28. 运行时从键盘上输入9876543210(表示回车),则该程序的输出结果是( ) main() { int a;float b,c; scanf("%2d%3f%4f\n",&a,&b,&c); printf("a=%d,b=%f,c=%f\n",a,b,c);} A. a=98,b=765,c=4321 B. a=10,b=432,c=8765 C. a=98,b=765.000000,c=4321.000000 D. a=98,b=765.0,c=4321.0 29. 设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量 a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正 确的是(注:□代表空格字符)( ) A. 10□X□20□Y B. 10□X20□Y C. 10□X D. 10X 20□Y 20Y 30. 以下程序的输出结果是( ) #define MA(x) x*(x-1) main() { int a=1,b=2; printf("%d\n",MA(1+a+b));} A. 6 B. 8 C. 10 D. 12 31. 以下程序的输出结果是( ) 4
#define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d\n",M(a+b,b+c,c+a)); } A. 19 B. 17 C. 15 D. 12 32. 以下程序段的输出结果是( ) #define MIN(x,y) (x)<(y)?(x):(y) main() { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\n",k); } A. 15 B. 100 C. 10 D. 150 33. 设a=1,b=2,c=3,d=4,则表达式aA. 4 B. 3 C. 2 D. 1 34. 以下程序段的输出结果是( ) main() { int x=5; if(x++>5) printf("%d\n",x); else printf("%d\n",x--); } A. 4 B. 5 C. 6 D. 7 35. 有以下程序 main() { int n=4; while(n--) printf("%d ",--n); } 程序执行后的输出结果是( ) A. 2 0 B. 3 1 C. 3 2 1 D. 2 1 0 36. 有以下程序 main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是( ) A. y=0 B. y=-1 C. y=1 D. while构成无限循环 37. 有以下程序 main() { int i; 5
for(i=0;i<3;i++) switch(i) { case 0: printf("%d",i); case 1: printf("%d",i); default: printf("%d",i); } } 程序执行后的输出结果是( ) A.000112 B. 012 C. 012020 D. 120 38. 以下叙述中正确的是( ) A. 构成C程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其它函数之前 D. 所有被调用函数一定要在调用之前进行定义 39. 以下说法中正确的是( ) A. C语言程序总是从第一个函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 40. 以下程序的输出结果是( ) int fun(int x) { int p; if(x==0||x==1) p=3; else p=x-fun(x-2); return p; } main() { printf("%d\n",fun(7)); } A. 7 B. 3 C. 2 D. 0 41. 以下数组定义中错误的是( ) A. int x[][3]={0}; B. int x[2][3]={{1,2},{3,4},{5,6}}; C. int x[][3]={{1,2,3},{4,5,6}}; D. int x[2][3]={1,2,3,4,5,6}; 42. 以下能正确定义二维数组的是( ) A. int a[][3]; B. int a[][3]={2*3}; C. int a[][3]={}; D. int a[2][3]={{1},{2},{3,4}}; 43. 以下程序的输出结果是( ) main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;