C语言所有题目以及答案 下载本文

一.判断题

1.关系运算符<=与==的优先级相同。 N 2.7&3+12的值是15. N

3.在TurboC中,整型数据在内存中占2个字节。 Y

4.C语言本身不提供输入输出语句,输入输出操作是由函数实现的。 Y 5.char [ ]=“Very good”:是一个合法的为字符串数组赋值的语句。 Y 6.进行宏定义时,宏名必须使用大写字母表示。 N 7.若有int i=10,j=2;则执行i*=j+8;后i的值为28. N 8.语句Scanf(“%7.2f”,&a);是一个合法的scanf函数。 N 9.C语言中%运算符的运算对象必须是整型。 Y

10.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面。 N 11.a=(b=4)+(c=6)是一个合法的赋值表达式。 Y

12.整数-32100可以赋值给int型和long int型变量。 Y 13.语句printf(“%f%%”,1.0/3);输出为0.333333. N

14.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没有定义,所以此宏定义是错误的。 N 15.x*=y+8等价于x=x*(y+8) Y

16.若有int i=10,j=0;则执行完语句if(j=0)i++;i--;i的值为11. N 17.C语言中只能逐个引用数组元素而不能一次引用整个数组。 Y 18.若a=3,b=2,c=1则关系表达式“(a>b)==c”的值为“真”。 Y 19.C语言所有函数都是外部函数。 Y

20.如果想使一个数组中全部元素的值为0,可以写成 int a[10]{0*10}; N

21.若有定义和语句:int a ;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=’A’,f=12.5. Y

22.如果有一个字符串,其中第十个字符为‘\\n’,则此字符串的有效字符为9个 。 N 23.若有说明int c;则while(c=getchar());是正确的c语句。 Y 24.在C程序中,函数既可以嵌套定义,也可以嵌套调用。 N 25.typedef可以定义生成新的数据类型。 N

26.char*p=”girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”. N 27.在C语言中,此定义和语句是合法的:enum aa{a=5,b,c}bb;bb=(enum aa)5; Y 28.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。 Y 29.C语言的函数可以嵌套定义。 N

30.假设有int a[10],*p;则p=&a[0]与p=a等价。 Y 31.C程序总是从程序的第一条语句开始执行。 N

32.若有#define S(a,b)a*b则语句area=S(3,2);area的值为6. Y 33.参加位运算的数据可以是任何类型的数据。 N 34.若i=3,则printf(“%d,-i++”);输出的值为-4. N 35.变量根据其作用域的范围可以分作局部变量与全局变量。 Y 36.通过return语句,函数可以带回一个或一个以上的返回值。 N 37.continue终止程序 N 38.15的二进制是1111 Y

39.若有宏定义#define t=a a=b b=c定义是错误的 N 40.#define和printf都不是C语句 Y

41.While和do while运行结果可能不同 Y

二.单选题:

1.对于void型函数,调用时不应作为 D、表达式 2.C程序中的宏展开是在 C、编译前预处理时进行的 3.以下选项合法的用户标识符是 B、—2Test

4.假设所有整型变量,表达式:a=2,b=5,a>b?a++;b+t.则a+b的值 B、8 5.C语言中要求对变量作强制定义的主要原因是D、便于确定类型和分配空间 6.若有以下定义:char S=“1092”,则该语句 B、定义不合法,s的值不确定 7.若a是float型变量,b为unsigned型变量,合法的C、scanf(“%f0”,&a,&b) 8.若i为整型变量,则以下循环次数for(i=2;i==0;)printf(“%d”,i--)B、0次 9.以下描述正确的是C、在do-while循环体中,一定要有能使while后面表达式的值变为零 10.以下数组定义中不正确的D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}} 11.经过以下语句定义后,表达式z+=x>y?++x;++y的值为 C、6

12.C语言中,while和do-while循环的主要区别是Ado-while的循环体至少无条件执行一次 13.Int a[10]:合法的数组元素的最小F标值为 D、0

14.已知year为整型变量,不能使表达式(year%4=0.88year0!=0)||year A、1990 15.已知a为int类型,且其值为3,则执行完表达式a+=a—=a*a后,a的值 C、—12 16.以下程序的输出结果是main(){int i=010,j=10;printf(“%d,%d\\n”...)B、9,10 17.执行语句for(i=1:i++<4;)后变量i的值为 C、5

18.设i和k都是int类型,for循环语for(j=0,k=0;j<=9&&k!=8>6...)A最多执行10次

19.以下程序的输出结果main(){int i,j,k,a=3,b=2;i=(--a==b++)?--a;++b;...} D、i=1,j=1,k=3 20.下列定义不正确的是C、int max(x,y);int,y;{}

21.若有说明:int*p,*p1,*p2,m=5,n;以下均是正确赋值语句的是 C、P1=&m*p2=p1* 22.C语言中,char型数据占()字节A、1个字节 23.表达式,0×13&0×17的值为( ) B、0×13

24.执行下列语句后输出int i=-1;if(j<=1) printf(“****\\n”)printf(“%%%%\\n”) A、**** 25.判断char型变量,c1是否为小写字母的正确表达式 D、c(1>=’a’)&&(c1<=’z’) 26.用下列语句(long c1=0....)定义a,b,c,然后执行b=a,c=’b’+b,则b=c= C、—1和97 27.下列程序段的输出结果float k=0.8567;printf(“%0.6/f%%”,k*100) B、0085.7% 28.若有定义:int aa[8];则以下表达中不能代表数组无c1 a[1]的地址是 C、&aa[0]++ 29.C语言规定:简单变量做时参时,它和对应形参之间数据传递方式是 B、单向值传递 30.Size of(float)是 C、一个整型表达式

31.能将简级语言编写出源程序转换成目标程序的是 C、编译 32.从键盘上输入某个字符串时,不可使用 A、getchar( )

33.以下程序运行结果是main(){int i=1,sum=0 while(i<12) sum=sum+1;i++...}D运行出现错误 34.若有说明:int a[][3]={1,2,3,4,5,6,7,};则a数组第一组大小是 B、3 35.以下不能正确定义二维数组的选项是 D、int a[2][]={{1,2},{3,4}} 36.C语言中,若对函数类型来加置式说明,函数的隐含说明类型为 C、int 37.数组名作为实参数传递给函数时数组名被处理为 C、让数组的首地址 38.两个指针变量不可以 A、粗加

39.下列语句输出结果为printf(“%d\\n”,(int)(2.5+3.0)/3); C、1 40.求平方根的函数名 D、sqrt

41.以下不正确的说法是:(C语言规定) B、形参可以定变量、常量或表达式 42.一下不能正确进行字符串赋初值的语句是 A、char str[5]=”good!” 43.以下定义语句中,错误的是() D、int n=5,a[n]

44.以下for循环的执行次数是for(x=0,y=0:(y=123)&&(x<4):x++) C、4次 45.以下字符串不能作转义自负的是 C、\\C’

46.表达式|8|4*sqrt(4.0)/8的数据类型为 C、double

47.在C语言中,要求运算符数必须为整型或字符型的运算符为 B、&

48.在char型变量x中的值为10100111,则表达式(2+x)^(3)的值 D、01010101 49.下面选项中,均是不合法的除点数的选项是 B、123 2e4.2 e5 50.C语言中,int类型数据占2个字节,则long类型数据占 C、3个字节 51.以下运算符中,优先级最高的运算符为 B、++

52.若有char c1[80];*s=a;不正确的输入语句是 C、fscanf(stdin,c”,s); 53.以下语句中,不能实现回车换行的是 B、putchar(“\\n”); 54.以下叙述不正确的是 C、表达式a!=b等价于a=a!b

55.关for循环正确描述D.for循环的循环体语句中,可以包含多余语句,但必须用花括号括起来 56.假定int类型变量占用2个字节,其定义:int x[10]={0,2,4},则数组在内存中占字节 D、20 57.以下正确的是 B、可以把define定义为用户标识符,但不能把if定义为用户标识符 58.下列定义中合法的是 A、short-a=1-|e-|

59.设a为整型变量,初值为12,执行完a+=a-=a*a后,a的值为 D、264 60.若定义:int a=511,*6=&a;则printf(“%d\\n”,*b),的输出结果为 D、511 61.若x=2,y=3.则x&y的结果为 B、2

62.变量p为指针变量,若p=&a,下列不正确 D、*p(++)= =a++ 63.下列字符序列中,是C语言保留字的是 A、size of 64.以下数据中不正确的数值或字符常量为 C、013

65.执行以下程序,输出结果和a的值为int a=10 printf\\”%d”,a++ B、10和11 66.函数的形式参数隐含的存储类型说明是 D、auto

67.以下正确的说法:(在C语言中) A、实参与其对应的形参各占用独立的存储单元 68.若有说明:int a[3][4]:则数组a中各元素 D、可用程序的编译或运行阶段得到初值 69.Static char str[10]=”China”;数量元素个数为 D、10

70.经过下列语句定义后,size of(x),size of(y),size of(a),size of(b)的值分别为C=1,4,2,8 71.若已定义的函数有返回值,则关于该函数调用错误的是 D.函数调用可用座位函数的形参 72.若有int i=3,*p;p=& i;下列语句中输出结果为3的是 C、printf(“%d”,*P) 73.下列选项中,合法的C语言关键是 D、default 74.以下选项中合法的实型常数是 C、ZEO

75.以下运算符中,优先级最高的运算符是 C、c类型

76.若有说明int a[10],则对c数组元素正确的引用是 D、a[10,-10] 77.Char a[10]不能讲字符串“abc”存储在数组中的是 C、a=“abc”

78.以下程序中不能正确附字符串(编译系统提示错误)的是 C、char S[10]:S=”abcdefg” 79.C语言中,函数值类型的定义可以缺省,函数值的隐含B.函数调用做完函数表达式的一种 80.C语言必须有的函数是 B、main

81.逻辑运算符的两侧运算对象的数据类型 D、可以是任何类型的数据 82.以下运算符中,优先级最高的运算符是 D、0

83.经过以下语句定义后,表达式z+=x+y?++x:++y的值为 C:6

84.先用语句定义的字符变量C,然后要把a赋给c,则下列语句中正确的是 A、c=’a’ 85.Printf函数中用个事%5s,其中数字与表述输出的字符串占用5 B.按原字符从左向右输出 86.若变量&正确定义并赋值下面符合C语言合法的表达式是 B、a=b=c+2

87.Char a[ ]=”This is a program”,输出前5个字符的语句是 A.printf(“%5s”,a)

88.一个算法具有“确定性”,等5个特性,对另4个特性的描述中错误是B.有零个或多个输出 89.C语言能正确处理的指数是 C、123000000000

90.不正确的是D.输入数值数据时,整型变量只能输入整型值,对于实型变量只能输入实型值 91.以下不符合C语言法的赋值语句是()D.=float(3)

92.以下对一组整型极值a的正确说明是 D、#define size 101 int a[size] 93.若二维数组a有m列,则在a[i][j]钱元素个数为 B、i*m+j 94.下列正确语句组为 D、char*S;S=”Beijing”

95.Char a1[]=”abc”,a2[80]=”1234”将a1串连接到a2串后面的语句是A.strcat(a2,a1) 96.与实际参数为实型数组,相对应的形参数不可以定义为 C、float a 三.程序填空

1功能:求两个非负整数的最大公约数和最小公倍数。

【1】 r != 0 或 r 【2】 r=m%n 【3】 n 【4】 gcd,lcm 2功能:下面的程序是求1!+3!+5!+??+n!的和。

【1】 s=0 【2】 i+=2 【3】 j<=i 【4】 f= f * j

3功能:将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。

【1】 p1= str1 + m 【2】 *p2++=*p1++ 【3】 *p2=0 【4】 strcopy(str1,str2,m) 4功能:以下程序是用选择法对10个整数按升序排序。

【1】 #define N 10 【2】 k=I 【3】 j

【1】 s[i]!= 【2】 || 【3】 s[j]=s[i] 【4】 delnum(item) 6功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。

【1】 n=0 【2】 i<=300 【3】 i%7 == 0 || i == 0 【4】 n%5 == 0 7功能:求100-999之间的水仙花数

【1】 k=0 【2】 j=m 【3】 return(1) 【4】 fun(i) 8功能:输出9*9口诀。

【1】 i<10 【2】 j++ 【3】 result

9功能:输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。 【1】 k=0 【2】 n 【3】 while(n>0) 【4】 printf(\10功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。 【1】 x != 0 【2】 else 【3】 scanf(\【4】 av2=s2/j 11功能:求一个二维数组中每行的最大值和每行的和。

【1】 s=0 【2】 k=a[i][j] 【3】 c[i]=s 【4】 a[i][j] 12功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。 【1】 str 【2】 str[i]!='\\0' 【3】 str[k]=str[i] 【4】 str[k]='\\0' 13功能:将一个数组中的元素按逆序存放。

【1】 k++ 【2】 a[k]=a[N-k-1] 【3】 a[N-k-1]=s 【4】 printf 14功能:产生并输出杨辉三角的前七行。

【1】 a[i][i]=1 【2】 i 【3】 a[i-1][j]+a[i-1][j-1]【4】 j<=i 15功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。 【1】JOIN(str1,str2) 【2】 j=strlen(s1) 【3】 s2[i]!= 【4】 0 16功能:输入字符串,再输入一个字符,将字符串中与输入字符相同的字符删除。 【1】 a[i] 【2】 a[j]=0 【3】 cc=getchar() 【4】 fun(a,cc) 17功能:输入两个整数,求他们的按位与。

【1】 x/2 【2】 a*b*k 或 a * b * k 【3】 printf