C语言综合练习3
一、 选择题
1 . 在C语言中,以下选项中不能表示10 ×1000之值的是() A. 1.0E4.0 B. 1.E4 C. 10E3 D. 1.0e4 2. 以下选项中,合法的C语言常量是()
A. 21.84 B. ‘CPP’ C. ”\\1.0 D. 2MB 3. 有以下程序:
# include
{ int x=010 , y=10;
printf(“%d,%d\\n”,++x,y--); } 程序运行后的输出结果是()
A. 10 ,9 B . 11 , 10 C. 010 ,9 D. 9 , 10
4. 若有定义:int a ; float b; double c ; 程序运行输入:a=1,b=2,c=3 <回车>,能把1输入给变量a、值2输入给变量b、值3输入给变量C的输入语句是()。 A. scanf(“a=%d,b=%f,c=%lf”,&a,&b,&c); B. scanf(“%d%f%lf”,&a,&b,&c);
C. scanf(“a=%d,b=%lf,c=%lf”,&a,&b,&c); D. scanf(“a=%d,b=%f,c=%f”,&a,&b,&c); 5.有如下程序: # include
{ int a=0,b=1;
if ( a++ && b++ ) printf(“T”); else printf(“F”);
printf(““a=%d,b=%d\\n”,a,b); } 程序结果的输入结果是()
A. Ta=1,b=2 B. Fa=0,b=2 C. Fa=1,b=1 D. Ta=0,b=1 6.以下不是合法c语言转义字符的是()
A. ’\\c’ B. ’\\a’ C. ’\\b’ D. \\r’ 7.以下能够实现计算5!的程序段是()。
(A)int fac =1,k=o; (B)int fac=0,k=1;
do{k++;fac*=k;} while(k<5); do{fac*=k,k++;} while(k<5); (C)int fac=1,k=1;(D)int fac=1,k=0;
do{k++;fac*=k;} while(k<=5); do{fac*=k;k++;} while(k<5); 8.有以下程序:
1
#include
{ int x =ox13;
if (x=ox12) printf(“True”); printf(“False\\n”); } 程序运行后的输出结果是()。
A. True B. TrueFalse C. False D. TrueFalseTrue 9.有以下程序段:char c1,c2,c3;scanf(“%c%c%c”,&c1,&c2,&c3);若要给c1,c2,
C3分别输入字母A,B,C,则以下对输入形式的描述正确得是()。 A. 字母A,B,C之间可以用空格分隔 B. 字母A,B,C之间不能有分隔符 C. 字母A,B,C之间可以用回车符分隔 D. 字母A,B,C之间可以用Tab键分隔 10.有以下程序: #include
{ printf(“%d\\n”,NULL): } 程序运行后的输出结果是()。
A.0 B.变量无定义,输出不确定 c. -1 D. 1 11.以下关于函数的叙述中正确的是() A.函数调用必须传递实参 B.函数必须要有形参 C.函数必须要有返回值
D.函数形参的类型与返回值的类型无关 12.有以下程序: #includea
for (i=0; i {if (i%3==0) a[ i ]-=n; else a[ i ]+=n; } } main( ) { int c[5] = {6,7,8,9,10},i; fun(c,5); for(i=;i<5;i++) printf(“%d,”,c[i]); } 程序运行后的输出结果是() A.1,12,13,4,15, B.10,9,8,7,6, 2 C.1,7,13,9,15, D.10,12,8,4,6, 13.以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划线处。 #include { int a[10], i=0; while(i<10) scanf(“%d”,________); ? } A.a+(i++) B. &a[i+1] C. a+I D. &a(i++) 14.有以下程序: #include int *f(int *s,int * t) { if ( *s< *t) *s= *t; return s; } main( ) {int i=3,j=5,*p=&j,*q=&j, *r; r=f(p,q); printf(“%d,%d,%d,%d\\n”,i ,j, *p, *q, *r); } 程序的运行结果是( ) A.5,5,5,5,5 B.3,5,5,5,5 C.5,3,3,3,5 D.3,5,3,5,5 15.有如下程序; #include { printf(“%d\\n”, strlen(0\\t\\nA011\\1”) ); } 程序运行后的输出结果是() A.8 B.9 C.7 D.10 16.若有定义:char*ps[]={“aa”,“bb”,“cc”,“dd”};,则以下叙述正确的的是 A. *ps[0]是字符‘a’ B. *ps[0]是字符串“aa” C. ps[0]是字符‘a’ D.ps是字符串“aa” 17.以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是( ) A.char*str,name[10];str=”Hello World”; B.char*str,name[10];name=”Hello World”; C.char str1[10]=“prog.c”,str2[10];str2[10]=str1; D.char head_line[]; head_line=”== == == == == == =”; 18.有以下程序; 3 #include { char ch; ch=getchar(); if (ch!=’\\n’) get_put(); putchar(ch); } main() { get_put();} 程序运行时,输入ABCD<回车>,则输出结果是() A. DCDC B. DCBA C. BABA D. ABCD 19.若有以下程序段: char str[4][12]={“aaa”,”bbbb”,”ccccc”,”dddddd”-,*strp[4]; int i; for(i=0;i<4;i++) strp[i]=str[i]; 则以下错误引用字符串的选项是(其中0<=k<4)() A. *strp B.str[k] C. strp[k] D. strp 20.有以下程序: #include { int findmax(int,int,int); int m; … m=findmax(a,b,c); … } int findmax(int x,inty,intz) { … } 则以下叙述正确的是()。 A. 在mian函数中声明了findmax函数 B. 在mian函数中定义了findmax函数 C. 在mian函数中两次调用了findmax函数 D. 在mian函数内、外重复定义了findmax函数 21.有如下程序 #include int sum(int*array, int len) { if( len == 0 ) return array [0]; else return array [0]+sum(array+1,len-1); } main() { int array[5]={1,2,3,4,5}; int res =sum(array,4); printf(“%d\\n”,res); } 程序运行后的输入结果是() 4 A. 15 B. 10 C. 8 D. 1 22.有以下程序 #include { char ch=’B’; while(ch,<’E’) { printf(“%d”,ch-‘A’); ch++; } printf(“\\n”); } 程序的运行结果是() A.123 B.ABC C. abc D. 012 23.有以下程序 #include { char *P1;p*2; p1=p2=(char*)malloc(sizeof(char)*10); strcpy(p1,”malloc”); strcpy(p2,p1+1); pintf(“%c%c\\n”,p1*0+,p2*0+); - 程序的运行结果是() A. aa B. ma C. am D. mm 24.有如下定义 struct { int num; char name[10]; struct {int y; int m; int d;} birth; } s,*ps=&s; 以下对内嵌结构体成员的引用形式错误的是()A.ps->birth.y B.s. birth.y C.ps.birth. y 25.有以下程序; #include #define MU N(M+1)*M/2 mian() , printf(“%d\\n”, MUN); - 程序运行后的输出结果是() A.8 B.9 C.5 D.6 5 .(*ps).birth. y D