C语言超级经典400道题

threeg

贡献于2014-11-20

字数:0 关键词: C/C++开发

C语言超级经典400道题目 1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、1   2、C语言程序的三种基本结构是____构A、顺序结构,选择结构,循环结 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、1   3、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、1   4、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、1   5、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C序中的main函) 程数 D) 包含文件中的第一个函数、C、1   6、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、1   7、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、1   8、C语言中函数返回值的类型是由( )决定。 A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、1   9、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。 A、 该数组的长度。 B、该数组的元素个数。 C、 该数组中各元素的值。 D、 该数组的首地址。、D、1   10、C语言中数组下标的下限是________。 A、1 B、0 C、视具体情况 D、无固定下限、B、1   11、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、1   12、C语言中文件的存取方式是________。 A、顺序存取 B、随机存取 C、顺序存取、随机存取均可 D、顺序存取、随机存取均不可、C、1   13、C语言中最简单的数据类型包括 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型、B、1   14、sizeof(float)是( ) A) 一种函数调用 B) 一个不合法的表示形式 C) 一个整型表达式 D) 一个浮点表达式、C、1   15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);、B、1   16、表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1、D、1   17、表示关系x<=y<=z的c语言表达式为 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)、A、1   18、程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是____ A) 65536 B) 0 C) 有语法错误,无输出结果 D) -1、B、1   19、当调用函数时,实参是一个数组名,则向函数传送的是____ A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值、B、1   20、对嵌套子程序调用说法正确的是____。 A、 外层子程序可以调用所有的内层子程序 B、 内层了程序只可以调用包含本身的外层子程序,不可以隔层调用 C、 外分程序必须能完全套住内分程序 D、 以上说法均不正确、C、1   21、对于基类型相同的两个指针变量之间,不能进行的运算是 A) < B) = C) + D) -、C、1   22、合法的C语言中,合法的长整型常数是 A) '\t' B) "A" C) 65 D) A、A、1   23、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20、D、1   24、假定有以下变量定义: 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)、D、1   25、请读程序片段(字符串内没有空格): printf("%d\n",strlen("ATS\n012\1\\"));的输出结果是 A) 11 B) 10 C) 9 D) 8 、C、1   26、请选出合法的C语言赋值语句 A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);、B、1   27、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 6、C、1   28、若int类型占两个字节,则以下语句输出为________。 int k=-1; printf("%d,u%\n",k,k); A、-1,-1 B、-1,65536 C、-1,32768 D、-1,65535、D、1   29、若变量a是int类型,并执行了语句:a=‘A'+1、6;,则正确的叙述是 A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符‘A’的ASCII值加上1。、D、1   30、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10、0,b赋予22、0,c赋予33、0,不正确的输入形式是: A) 10 B) 10、0,22、0,33、0 22 33 C) 10、0 D) 10 22 22、0 33、0 33、B、1   31、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 A) a<>0 B) !a C) a=0 D) a、B、1   32、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 A)1 B)2 C)2、0 D)2、5、C、1   33、若有定义:int a=8,b=5,c;,执行语句c=a/b+0、4;后,c的值为 A) 1、4 B) 1 C) 2、0 D) 2、B、1   34、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 A) scanf("x=%d y+%d",&x,&y);a=getchar();b=getchar();c=getchar(); B) scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar(); C) scanf("%d%d%c%c%c,&x,&y,&a,&b,&c); D) scanf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);、D、1   35、若有定义和语句: char s[10]:s="abcd";printf("%s\n",s); 则结果是(以下u代表空格) A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过、D、1   36、若有以下程序段, int c1=1,c2=2,c3; c3=1、0/c2*c1; 则执行后,c3中的值是 A) 0 B) 0、5 C) 1 D) 2、A、1   37、若有以下定义: char a; int b; float c; double d; 则表达式a*b+d-c值的类型为 A) float B) int C) char D) double、D、1   38、若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是: A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定、B、1   39、若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是 A)3 B)4 C)5 D)6、A、1   40、若执行下面的程序时从键盘上输入3和4,则输出是____ A) 14 B) 16 C) 18 D) 20 main( ) { int a,b,s; scanf("%d %d",&a,&b); s=a; if(a、B、1   41、若执行下面的程序时从键盘上输入5,则输出是 A) 7 B) 6 C) 5 D) 4 main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--);}、B、1   42、若执行以下程序时从键盘上输入9,则输出结果是 A) 11 B) 10 C) 9 D) 8 main( ) { int n; scanf("%d",&n); if(n++、B、1   43、设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为____ A) 0 B) 1 C) 2 D) 3、C、1   44、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 A) 552 B) 264 C) 144 D) -264、D、1   45、设 int b=2;表达式(b>>2)/(b>>1)的值是 A) 0 B) 2 C) 4 D) 8、A、1   46、设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是________ A)'a'&&'b' B)a<=b C)a||b+c&&b-c D)!((a   47、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 A 4 B 16 C 32 D 52、C、1   48、设x=3,y=-4,z=6,写出表达式的结果。 !(x>y)+(y!=z)||(x+y)&&(y-z) A、0 B、1 C、-1 D、6、B、1   49、设x和y均为int 型变量,则以下语句:x+=y;y=x-y;y=x-y;x-=y;的功能是 A、把x 和y按从大到小排列 B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值、D、1   50、设有 int x=11; 则表达式 (x++ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 12、A、1 51、设有如下的变量定义: 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)、A、1   52、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下就法中正确的是 A) aa数组成元素的值分别是"abcd"和ABCD" B) aa是指针变量,它指向含有两个数组元素的字符型一维数组 C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D) aa数组的两个元素中各自存放了字符'a'和'A'的地址、D、1   53、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是 A) 1 B) 0 C) 4 D) 3、D、1   54、设有数组定义: char array [ ]="China"; 则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节、C、1   55、设有说明语句:char a='\72';则变量a A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法、A、1   56、设有以下语句:int x=03,y=02,z=01;那么语句printf("%d",x|y&~Z)的执行结果(  )。 (A) 1 (B) 2 (C) 3 (D) 0、C、1   57、下列if语句中,不正确的是________。 A、if(x>y); B、if(x==y) x+=y; C、if(x!=y) scanf("%d",&x) else x=1; D、if(x、C、1   58、下列变量定义中合法的是 A) short _a=1-、le-1; B) double b=1+5e2、5; C) long do=0xfdaL; D) float 2_and=1-e-3;、A、1   59、下列标识符中不合法的是_______ A、s_name B、_e C、fox D、3DS、D、1   60、下列不正确的转义字符是 A) '\\' B) '\" C) '074' D) '\0'、C、1   61、请读程序: main() { int a=1,b=2; printf("%d\n",a=a+1,a+6,b+2);} 则上面程序的输出结果是____ A、2 B、3 C、4 D、1、A、1   62、请读程序: int i=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf("i=%d,j=%d,a=d%\n",i,j,a); 则上面程序的输出结果是____ A、i=0,j=0,a=6 B、i=1,j=0,a=7 C、i=1,j=1,a=6 D、i=1,j=1,a=7、B、1   63、下列程序段的输出结果为________? int y=1; while(y--); printf("y=%d\n",y); A、y=- 1B、y=0C、死循环D、y=9 、A、1   64、下列程序执行后的输出结果是 A) 3 B) 6 C) 9 D) 随机数 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=p; i、B、1   65、下列程序执行后的输出结果是 A) G B) H C) i D) J main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }、A、1   66、下列程序执行后的输出结果是(小数点后只写一位) A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D) 6 6 6、7 6、0 main() { double d; float f; ling l; int i; i=f=1=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); }、A、1   67、下列可作为C语言赋值语句的是 A)x=3,y=5 B)a=b=6 C)i--; D)y=int(x);、C、1   68、下列描述中不正确的是 A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值、C、1   69、下列说法中正确的是________。 A、在switch语句中一定要使用break语句 B、在switch语句中不一定要使用break语句 C、break语句是switch语句的一部分 D、break只能用于switch语句中、B、1   70、下列运算符其优先级最高的是________。 A、|| B、&& C、+ D、=、C、1   71、下面的DO循环中,一共循环(  )次。 M=5 N=1 DO WHiLE N<=M N=N+1 ENDDO (A) 1 (B) 6 (C) 4 (D) 5、D、1   72、请读程序: #include main() { int a=1,b=4,c=2; float x=5、5,y=9、0,z; z=(a+b)/c+sqrt((double)y)*1、2/c+x; printf("%f\n",z); } 则上面程序的输出结果是____ A、数据溢出B、9、3C、9、300000D、0、93、C、1   73、请读程序: int a,b,c; a=(b=(c=10)+5)-5; printf("a,b,c=d%,d%,d%",a,b,c); c=a=0; b=(a+10); printf("a,b,c=%d,d%,d%",a,b,c); 则上面程序的输出结果是____ A、a,b,c=0,10,10 a,b,c=10,15,10 B、a,b,c=10,15,10 a,b,c=10,15,10 C、a,b,c=10,15,10 a,b,c=0,10,0 D、a,b,c=10,15,10 a,b,c=10,15,15、C、1   74、写出下列语句执行后a,b的值。 int a=6,b; b=(++b)+(a++); A、a=8,b=14 B、a=7,b=8 C、a=14,b=14 D、a=8,b=8、A、1   75、请读程序: m=1234、123; printf=("%-8、3f\n",m); printf=("%10、3f\n",m); 则上面程序的输出结果是____ A、1234、12300 1234、123 B、1234、123 1234、123 C、1234、123 1234、12300 D、1234、12300 1234、123、B、1   76、一个C语言的语句至少应包一个________ A、{} B、逗号 C、分号 D、什么不要、C、1   77、一个完整的C源程序是________。 A、要由一个主函数(或)一个以上的非主函数构成 B、由一个且仅由一个主函数和零个以上(含零)的非主函数构成 C、要由一个主函数和一个以上的非主函数构成 D、由一个且只有一个主函数或多个非主函数构成、B、1   78、已知整型变量a=13和b=6,则a&b的值是________,a^b的值是________ A、4 13 B、4 11 C、1 11 D、4 13、B、1   79、以下for语句构成的循环执行了(  )次。 # include #define N i #define M N+1 # define NUM (M+1)*M/2 main( ) {int i,n=0; for (i=1;i<=num;i++) {n++; printf("%d",n); } } (A) 5 (B) 6 (C) 8 (D) 9、C、1   80、以下程序的输出结果是____ # include main( ) { printf("%d\n",NULL); }  (A) 不确定的 (B) 0    (C) -1 (D) 1、B、1   81、在调用函数时,以下描述中正确的是________。 A、调用函数时,实参可以是表达式 B、调用函数时,将为形参分配内存单元 C、调用函数时,实参与形参的原型必须一致 D、调用函数时,实参与形参可以用内存单元、D、1   82、有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次、A、1   83、有以下函数 char fun(char *p) { return p; } 该函数的返回值是 A) 无确切的值 B) 形参p中存放的地址值 B) 一个临时存储单元的地址 D) 形参p自身的地址值、B、1   84、语句printf("%d\n",12&012);的输出结果是____ A) 12 B) 8 C) 6 D) 012、B、1   85、语句:printf("%d",(a=2)&&(b= -2);的输出结果是____ A) 无输出 B) 结果不确定 C) -1 D) 1、D、1   86、运算完下面的C语言程序段以后,a的值是______,b的值是______,c的值是________。 int x=10,y=9; int a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y; A、6 9 13 B、8 7 11 C、8 9 10 D、8 7 10、C、1   87、在C语言程序中,注释部分从哪开始,到哪结束? A、从(到)结束 B、从REM开始无结束志标志 C、无起始标志 D、从/*开始,*/结束、D、1   88、在C语言提供的合法的关键字是 A) swicth B) cher C) Case D) default、D、1   89、在C语言中,不正确的int类型的常数是____ A) 32768 B) 0 C) 037 D) 0xAF、A、1   90、在C语言程序中,当while语句构成的循环中的条件为______时,结束循环。 A、0 B、1 C、true D、非0、A、1   91、在C语言中,函数的隐含存储类别是 A) auto B) static C) extern D) 无存储类别、C、1   92、在C语言中,合法的长整型常数是 A) OL B) 4962710 C) 324562& D) 216D、A、1   93、在C语言中,合法的字符常量是 A) '\084' B) '\x43' C) 'ab' D) "\0"、B、1   94、在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是____类型 A) void B) double C) int D) char、C、1   95、在C语言中,形参的缺省存储类是 A) auto B) register C) static D) extern、A、1   96、在C语言中,要求运算数必须是整型的运算符是 A) % B) / C) < D) !、A、1   97、在宏定义 #define PI 3、14159中,用宏名PI代替一个 A) 单精度数 B) 双精度数 C) 常量 D) 字符串、D、1   98、在C语言程序中,可以用做变量名的是____ A) 1e5 B) a1 C) int D) *p、B、1   99、在以下一组运算符中,优先级最高的运算符是 A)<= B)= C)% D)&&、C、1   100、字符(char)型数据在微机内存中的存储形式是____ A) 反码 B) 补码 C) EBCDIC码 D) ASCII码、D、1  101、执行语句: for (i=1;i++、C、2   102、指出下面正确的输入语句是( ) A:scanf("a=b=%d",&a,&b) B:scanf("a=%d,b=%f",&a,&b) C:scanf("%3c",c) D:scanf("%5、2f",&a)、B、2   103、执行下面的程序后,a的值为 main() { int a,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } } A) 7 B) 8 C) 9 D) 10、B、2   104、在执行以下程序时,如果从键盘上输入:ABCdef〈回车〉,则输出为 A)ABCdef B)abcdef C)abc D)DEF # include main() { chsr ch; while((ch=getchar())!='\n') { if(ch>='A'&& ch<='Z')ch=ch+32; 、C、2   105、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A) x || y B) x | y C) x & y D) x ^ y、D、2   106、在以下定义中,正确的说明语句为____ A) int a['a'] B)int a[3,4] C)int a[ ][ ] D)int *a[10]、D、2   107、执行下列程序时输入:123456789,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() { char s[100]; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); }、D、2   108、执行下面程序片段的结果是 int x=23; do { printf("%2d",x--);} while(!x); A) 打印出321 B) 打印出23 C) 不打印任何内容 D) 陷入死循环、B、2   109、在说明语句:int *f();中,标识符f代表的是____ A) 一个用于指向整型数据的指针变量 B) 一个用于指向一维数组的行指针 C) 一个用于指向函数的指针变量 D) 一个返回值为指针型的函数名、D、2   110、在下列选项中,不正确的赋值语句是____ A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;、D、2   111、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是________ A、extern B、register C、auto D、static、D、2   112、在C语言程序中,当do-while语句构成的循环中的条件为______时,结束循环。 A、0 B、1 C、true D、非0、A、2   113、在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是 A) a=20000+20000; B) a=4000*10; C) a=30000+10000; D) a=4000L*10L;、D、2   114、阅读以下程序: main() { int x; scanf("%d",&x); if(x--、B、2   115、运行以下程序后,如果从键盘上输入china#,则输出结果为 A、2,0 B、5,0 C、5,5 D、2,5 #include main( ) { int v1=0,v2=0; char ch ; while ((ch=getchar())!='#') switch (ch ) { case 'a': case 'h': default: v1++; case '0':v2++; } printf("%d,%d\n",v1,v2);、C、2   116、请读程序: main() { int a=1,b=2,c=3; ++a; c+=++b; { int b=4,c; c=b*3; a+=c; printf("first:%d,%d,%d\n",a,b,c); a+=c; printf("Second:%d,%d,%d\n",a,b,c); } printf("third:%d,%d,%d\n",a,b,c); } 该程序的输出是________。 A、first: 12,4,12 Second: 26,4,12 third: 4,3,6B、first: 14,4,12 Second: 26,12,12 third: 26,3,4C、first: 14,4,12 Second: 26,4,12 third: 26,3,6 D、first: 14,4,12 Second: 26,6,12 third: 26,4,6、C、2   117、阅读程序: #include main() { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%x\n",p); printf("%x\n",p+9); } 该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二个printf语句的输出结果是 A) 203 B) 204 C) 1a4 D) 1a6、D、2   118、与 y=(x>0?1:x0) y=1; B) if(x) else if(x0)y=1; else y=0; else if(x=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1;、A、2   119、以下合法的赋值语句是 A) x=y=100 B) d--; C) x+y; D) c=int(a+b);、B、2   120、以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i、D、2   121、以下函数值的类型是 fun ( float x ) { float y; y= 3*x-4; return y; } A) int B) 不确定 C) void D) float、A、2   122、以下说法中正确的是 A) C语言程序总是从第一个的函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分、C、2   123、以下所列的各函数首部中,正确的是 A) void play(var a:integer,var b:integer) B) void play(int a,b) C) void play(int a,int b) D) sub play(a as integer,b as integer)、C、2   124、以下叙述正确的是 A)输入项可以是一个实型常量,如: scanf("%f"、3、5); B)只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf("a=%d,b=%d); C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf("%4、2f",&f); D)当输入数据时,必须指明变量地址,例如: scanf("%f、&f); 、C、2   125、以下叙述正确的是 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do- while语句构成的循环只能用break语句退出。 C) 用do- while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do- while语句构成的循环,在while后的表达式为零时结束循环。、D、2   126、以下叙述中不正确的是 A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。 B) 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。 C) 在C中,外部变量的隐含类别是自动存储类别。 D) 在C中,函数形参可以说明为register变量。、C、2   127、以下叙述中不正确的是____ A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效、D、2   128、以下程序运行后,输出结果是 A)1000 B)10010 C)00110 D)10100 main () { int y=18,i=0,j,a[8]; do { a[i]=y%2;i++; y=y/2; } while(y>=1); for(j=i-1>0;j--)printf(%d",a[j]); printf("h\n"); }、B、2   129、以下程序运行后,如果从键盘上输入: book book 则输出结果是 A)*8 B)#9 C)#6 D)*9 #include main() {char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1); gets(s2); if(!strcmp(s1,s2)) printf(“*”); else printf(“#”); printf(“%d\n”,strlen(strcat(s1,s2))) }、B、2   130、以下程序运行后,输出结果是 A)6385 B)22 C)33 D)693825 main() { char ch[2][5]={"693","825"},*p[2]; int i,j,s=0; for (i=0;i='0' && p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); }、A、2   131、以下程序运行后,输出结果是 A)84 B)99 C)95 D)44 int d=1; fun (int p) { int d=5; d+=p++; printf("%d",d); } main() { int a=3; fun(a); d+=a++; printf("%d\n",d); }、A、2   132、以下程序执行后a的值是 A)4 B)1 C)0 D)运行时出错,a无定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf("%d\n",a); } 、C、2   133、以下程序执行后sum的值是 A)15 B)14 C) 不确定 D)0 min() { int i , sum; for(i=1;i、C、2   134、以下程序中,while循环的循环次数是 main() { int i=0; while(i、D、2   135、以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test"; D) int n=5,a[n];、D、2   136、以下对C语言函数的有关描述中,正确的是 A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数 D) C程序中有调用关系的所有函数必须放在同一个源程序文件中、A、2   137、以下对枚举类型名的定义中正确的是____ A)enum a={one,two,three}; B)enum a {one=9,two=-1,three}; C)enum a={"one","two","three"}; D)enum a {"one","two","three"};、B、2   138、以下各选项企图说明一种新的类型名,其中正确的是 A) typedef v1 int; B) typedef v2=int; C) typedefv1 int v3; D) typedef v4: int;、C、2   139、以下选项中,不能正确赋值的是 A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'}; C) char s3[20]="Ctest"; D) char *s4="Ctest\n"、A、2   140、以下选项中,非法的字符常量是 A) '\t' B) '\17' C)"n" D) '\xaa'、C、2   141、以下选项中不属于C语言的类型的是 A) signed short imt B) unsigned long int C) unsigned int D) long short、D、2   142、以下选项中合法的字符常量是 A)"B" B) '\010' C) 68 D) D、B、2   143、以下循环体的执行次数是 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i); }、C、2   144、以下有4组用户标识符,其中合法的一组是 A) for B) 4d C) f2_G3 D) if、C、2   145、用十进制数表示表达式:12/012的运算结果是 A)1 B)0 C)14 D)12、A、2   146、有如下程序 main0 { int x=23; do { printf("%d",x--);} while(!x); } 该程序的执行结果是 A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环、B、2   147、有如下程序 int runc(int a,int b) { return(a+b);} main0 { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%\d\n",r); } 该程序的输出的结果是A) 12 B) 13 C) 14 D) 15、D、2   148、有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main0 { printf("%d\n",fib(3)); 该程序的输出结果是 A) 2 B) 4 C) 6 D) 8、B、2   149、有如下程序 main() { char s[]="ABCD", *p; for(p=s+1; p、D、2   150、有如下程序 main0 { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i、A、2  151、有如下程序 main0 { int a=2,b=-1,c=2; if(a、C、2   152、有如下程序 main0 { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是 A) 6 B) 3 C) 死循环 D) 0、C、2   153、有如下程序 main0 { int n[5]={0,0,0},i,k=2; for(i=0;i、D、2   154、有如下程序 main0 { int n=9; while(n>6) {n--;printf("%d",n);} } 该程序段的输出结果是 A) 987 B) 876 C) 8765 D) 9876、B、2   155、有如下程序 main0 { 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=2、A、2   156、有如下程序 main0 { int y=3,x=3,z=1; printf("%d %d\n",(++x,y++),z+2); } 运行该程序的输出结果是 A) 3 4 B) 4 2 C) 4 3 D) 3 3、D、2   157、有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b; 执行该程序段后,a的值为 A) 12 B) 11 C) 10 D) 编译出错、B、2   158、有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 A) *p+9 B) *(p+8) C) *p+=9 D) p+8、B、2   159、请读程序: # include void main( ) {char x=112,y=211; printf("\n%d",x<>1);} 则上面程序的输出结果是____ A) -32 B) 0 C) -32768 D) -22、A、2   160、以下程序的输出结果是 main() { int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); } A) 258 B) 741 C) 852 D) 369、C、2   161、以下程序的输出结果是 main() { int i,k,a[10],p[3]: k=5; for (i=0;i、B、2   162、以下程序的输出结果是 main() { int num= 0; while(num<=2) { num++; printf("%d\n",num); } A) 1 B) 1 C)1 D) l 2 2 2 3 3 4、B、2   163、以下程序的输出结果是 fut (int**s,int p[2][3]) { **s=p[1][1]; } main( ) { int a[2][3]={1,3,5,7,9,11},*p; p=(int*)malloc(sizeof(int)); fut(&p,a); primtf("%d\n",*p); } A) 1 B) 7 C) 9 D) 11、C、2   164、以下程序的输出结果是 int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun(); printf("%d%d \n", a,b); } A) 100200 B) 57 C) 200100 D) 75、B、2   165、以下程序的输出结果是 main( ) { int a=-1,b=4,k; k=(+ +a〈0)&&!(b - -〈=0); printf("%d%d%d\n",k,ab); } A) 104 B) 103 C) 003 D) 004、D、2   166、以下程序的输出结果是 main() { char c='z'; printf("%c",c-25); } A) a B) Z C) z-25 D) y、A、2   167、以下程序的输出结果是 main() { char st[20]= "hello\0\t\\\"; printf(%d %d \n",strlen(st),sizeof(st)); } A) 9 9 B) 5 20 C) 13 20 D) 20 20、B、2   168、以下程序的输出结果是 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]; } A) 0650 B) 1470 C) 5430 D) 输出值不定、A、2   169、以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s)); A) 9 B) 12 C) 13 D) 14、A、2   170、以下程序段的输出结果是 int a=1234; printf("%2d\n",a); A) 12 B) 34 C) 1234 D) 提示出错、无结果、C、2   171、以下程序段的输出结果是 int x=3; do { printf("%3d",x-=2);} while(!(--x)); A) 1 B) 3 0 C) 1-2 D) 死循环、C、2   172、以下程序段的执行结果是 A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 a=16 y=20 a=18 y=24 C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44 int a, y; a=10; y=0; do { a+=2; y+=a; printf("a=%d y=%d\n",a,y); if(y>20) break; { while(a=14); 、、 、(39) 若有以下调用语句,则不正确的fun函数的首部是 A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a) main() { … int a[50],n; … fun(n, &a[9]); … }、B、2   173、以下程序段给数组所有的元素输入数据,请选择正确答案填入。 #include main() { int a[10],i=0; while(i、A、2   174、以下程序输出结果是 A、7 B、6 C、5 D、4 main ( ) { int m=5; if (m++>5 print ("%d\n",m); else printf ("%d\n",m--); }、B、2   175、以下程序运行后,如果从键盘上输入ABCDE,则输出结果为 A、8 B、7 C、6 D、5 fuch (char str [ ] { int num =0; while (*(str +num )!='\0')num ++; return(num ); } main() { char str [10],*p=str ; gets(p); printf("%d\n",func(p)); }、D、2   176、以下程序运行后,输出结果是 A 49、5 B 9、5 C22、0 D45、0 #include #define PT 5、5 #difine s(x) pt*x*x main() { int a=1,b=2; print ("%4、lf/n",S(a+b)); } 、B、2   177、以下程序运行后,输出结果是 A 8,15 B 8,16 C 8,17 D 8,8 func ( int m=0 ,i=2; i+=m+1; m=i+a+b ; return(m); } main() { int k=4,m=1,p; p=func (k,m);printf("%d,",p); p=func (k,m);printf("%d\n",p); }、C、2   178、以下程序运行后,输出结果是 A、ABCDEFG B、CDG C、abcdefgh D、abCDefGh main() { siatic char a[]="ABCDEFGH",b[]="abCDefGh"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++) if (*(p1+k)==*(p2+k)) printf("%",*(p1+k)); printf("\n"); }、B、2   179、以下程序运行后,输出结果是 A、cde B、字符c的ASCLL码值 C、字符C的地址 D、出错 main( ) { char *s="abcde"; s+=2; print("%ld \n",s); }、C、2   180、以下程序的输出结果是 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); } A) 3 B) 4 C) 1 D) 9、B、2   181、以下程序的输出结果是 #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、D、2   182、以下程序的输出结果是 #include"ctype、h" space (char *str) { int i,t;char ts[81]; for(i=0,t=0;str[i]!='\0';i+=2) if(! isspace(*str+i)&&(*(str+i)!='a')) ts[t++]=toupper(str[i]); ts[t]='\0'; strcpy(str,ts); } mian( ) { char s[81]={"a b c d e f g"}; space(s); puts(s); } A) abcdeg B) bcde C) ABCDE D) BCDE、D、2   183、以下程序的输出结果是 A) #*#*# B) ##### C) ***** D) *#*#* main( ) { int i; for(i=1;i、A、2   184、以下程序的输出结果是 A) 0 B) 1 C) 2 D) 3 main() { int x=0、5; char z='a'; printf("%d\n", (x&1)&&(z<'z') ); }、B、2   185、以下程序的输出结果是 A) -1 1 B) 0 1 C) 1 0 D) 0 0 main( ) { int a= -1,b=1,k; if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a); }、C、2   186、以下程序的输出结果是 A) 1 B) 2 C) 3 D) 4 long fun( int n) { long s; if(n= =1 || n= =2) s=2; else s=n-fun(n-1); return s; } main() { printf("%ld\n", fun(3)); }、A、2   187、以下程序的输出结果是 A) 1 B) 4 C) 7 D) 5 #include int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main( ) { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d \n",*p); } f(int *s, int p[][3]) { *s=p[1][1]; }、D、2   188、以下程序的输出结果是 A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d,%d ",x--,y); }、D、2   189、以下程序的输出结果是 A) 123456780 B) 123 456 780 C) 12345678 D) 147 main( ) { char ch[3][4]={"123","456","78"}, *p[3]; int i; for(i=0;i、C、2   190、以下程序的输出结果是 A) 16 B) 2 C) 9 D) 1 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf("d\n",a); }、B、2   191、以下程序的输出结果是 A) 17,021,0x11 B) 17,17,17 B) 17,0x11,021 D) 17,21,11 main( ) { int k=17; printf("%d,%o,%x \n",k,k,k); }、D、2   192、以下程序的输出结果是 A) 18 B) 19 C) 20 D)21 main() { int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<=i;j++)s+=a[i][j]; printf("%dn",s); }、A、2   193、以下程序的输出结果是 A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0 main( ) { int n=4; while(n-- )printf("%d ",--n); }、A、2   194、以下程序的输出结果是 A) 20 B) 21 C) 22 D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i、B、2   195、以下程序的输出结果是 A) 6 9 9 B) 6 6 9 C) 6 15 15 D) 6 6 15 int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( ) { int a=3; printf("%d \n",fun(a+fun(d))); }、C、2   196、以下程序的输出结果是 A) 9 B) 6 C) 36 D) 18 #define f(x) x*x main( ) { int a=6,b=2,c; c=f(a) / f(b); printf("%d \n",c); }、C、2   197、以下程序的输出结果是 A) ABCD B) ABCD C) EFG D) EFGH FGH EFG JK IJKL KL IJ O M main() { char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k、D、2   198、以下程序的输出结果是 A) 编译不通过,无输出 B) aceg C) acegi D) abcdefghi main( ) { int i; for(i='A';i<'i';i++,i++) printf("%c",i+32); printf(" \n"); }、B、2   199、以下程序的输出结果是 A) 4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8 main( ) { char *s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } v[i]++; } for(k=0;k、B、2   200、以下程序的输出结果是 A)6 B) 6789 C) '6' D) 789 main( ) { char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i; i=8; p=a+i; printf("%s\n",p-3); }、B、2 201、以下程序的输出的结果是 int x=3; main() { int i; for (i=1;i、C、2   202、以下程序的输出结果是 #include main() { int i=0,a=0; while(i、B、2   203、以下程序的输出结果是 int f() { static int i=0; int s=1; s+=i; i++; return s; } main() { int i,a=0; for(i=0;i、D、2   204、请读程序: static int a[]={1,3,5,7,9}; int y,x,*p; y=1; p=&a[1]; for(x=0;x、D、2   205、下面函数的功能是 A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面 int funl(char * x) { char * y=x; while(*y++); return(y-x-1);}、A、2   206、下面函数的功能是 sss(s, t) char *s, *t; { while((*s)&&(*t)&&(*t++== *s++)); return(*s-*t); } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中、B、2   207、下面能正确进行字符串赋值操作的语句是 A char s[5]={"ABCDE"}; B char s[5] ={'a','b' ,'c','d',''e'}; C char *s;s="ABCDEF"' D char *s; scasnf("%s",s);、C、2   208、下述对C语言字符数组的描术中错误的是 A) 字符数组可以存放字符串 B) 字符数组中的字符串可以整体输入、输出 C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较、C、2   209、下面的程序 A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环 main() { int x=3; do { printf("%d\n",X-=2); }while(!(--x));}、B、2   210、下面的程序执行后,文件testt、t中的内容是 #include void fun(char *fname、,char *st) { FILE *myf; int i; myf=fopen(fname,"w" ); for(i=0;i、A、2   211、下面各语句行中,能正是行赋字符串操作的语句行是 A)char st[4][5]={“ABCDE”}; B)char s[5]={'A','B','C','D','E'}; C)char *s;s=“ABCDE”; D)char *s;scanf(“%S”,S);、C、2   212、下面程序的输出是____ int w=3; main() { int w=10; printf("%d\n",fun(5)*w); } fun(int k) { if(k==0) return w; return(fun(k-1)*k); } A)360 B)3600 C)1080 D)1200、B、2   213、下面程序的输出是____ main() { char *a="12134211"; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case '1': v1++; case '3': v3++; case '2': v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); } A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8、C、2   214、下面程序的输出是 main() { int x=3,y=6,a=0; while(x++!=(y+=o1)) { a+o=1; if(y #include main() { char ss[10]="12345"; strcat(ss,"6789"); gets(ss);printf("%s\n",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789、D、2   215、下面程序的输出是 A) 0 1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4 5 15 main() { enum team {my,your=4,his,her=his+10}; printf("%d %d %d %d\n",my,your,his,her);}、C、2   216、下面程序的输出是 A) 0 B) 1 C) 3 D) 不确定的值 main() { int x=10,y=3; printf("%d\n",y=x/y);}、C、2   217、下面程序的输出是 A) -1 B) 0 C) 1 D) 不确定的值 main() { int x=100, a=10, b=20, ok1=5, ok2=0; if(a、A、2   218、下面程序的输出是 A) 1 B) 2 C) 7 D) 10 int m=13; int fun2(int x, int y) { int m=3; return(x*y-m); } main() { int a=7, b=5; printf("%d\n",fun2(a,b)/m);}、B、2   219、下面程序的输出是 A) 100 B) 160 C) 120 D) 64 main() { char x=040; printf("%d\n",x=x<<1);}、D、2   220、下面程序的输出是 A) 17 B) 18 C) 23 D) 24 main() { int x=023; printf(%d\n",-- x);}、B、2   221、下面程序的输出是 A) 23 B) 26 C) 33 D) 36 int aa[3][3]={{2},{4},{6}}; main() { int i, * p=&aa[0][0]; for(i=0; i、A、2   222、下面程序的输出是 A) 3 B) 4 C) 1 D) 2 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}、A、2   223、下面程序的输出是 A) 3 B) 4 C) 6 D) 9 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);}、C、2   224、下面程序的输出是 A) 60 B) 68 C) 99 D) 108 main() { int a[3][4]={ 1,3,5,7,9,11,13,15,17,19,21,23}; int ( *p)[4]=a,i,j,k=0; for(i=0; i、A、2   225、下面程序的输出是 A) 741 B) 852 C) 963 D) 875421 main() { int y=9; for( ; y>0; y--) { if(y%3==0) { printf("%d", --y);continue;} }、 }、B、2   226、下面程序的输出是 A) ABCD B) A C) D D) ABCD BCD B C ABC CD C B AB D D A A char s[]="ABCD"; main() { char *p; for(p=s; p、A、2   238、请读程序: int x=10; int y=x++; printf("%d,%d",(x++,y),y++); 则上面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11、A、2   239、下列程序的运行结果是 A) a=%2,b=%5 B) a=2,b=5 C) a=d, b=d D) a=%d,b=%d #include main() { int a=2,c=5; printf("a=%d,b=%d\n",a,c); }、B、2   240、下列程序的输出结果是 main( ) { char ch[2][5]={"6934,"8254"},*p[2]; int i,j,s=0; for(i=0;i'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); A) 6385 B) 69825 C) 63825 D) 693825、A、2   241、请读程序: main( ) {printf("%d",null);} 则上面程序的输出结果是____ A:0 B:变量无定义 C:-1 D:1、B、2   242、设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为 A) 出错 B) 42 C) 48 D) 54、C、2   243、设有以下函数: f ( int a) { int b=0; static int c = 3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是 main() { int a = 2, i; for(i=0;i、A、2   244、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A) 10,3 B) 9、3 C) 9、2 D)10、2、D、2   245、设有如下一段程序: int *var,ab; ab=100 var=&ab; ab=*var+10; 执行上面的程序后,ab的值为 A) 120 B) 110 C) 100 D) 90、B、2   246、设有如下的函数 ggg(x) float x; { printf("\n%d",x*x);} 则函数的类型 A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定、C、2   247、设有 static char str[ ]="Beijing"; 则执行 printf("%d\n", strlen(strcpy(str,"China"))); 后的输出结果为 A) 5 B) 7 C) 12 D) 14、A、2   248、设 int x=1, y=1; 表达式(!x||y--)的值是 A) 0 B) 1 C) 2 D) -1、B、2   249、若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是 A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]、D、2   250、若有以下说明: int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是 A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]、D、2 251、若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c[4][5], (*cp)[5]; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)、D、2   252、若有以下定义和语句: char *s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2))); 则输出结果是 A) 4 B)5 C)9 D)10、A、2   253、若有以下定义和语句: int u=010,v=0x10,w=10; printf("%d,%d,%d\n,u,v,w); 则输出结果是: A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10、A、2   254、若有以下定义: char s[20]="programming",*ps=s; 则不能代表字符o的表达式是 A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps、A、2   255、若有以下的说明和语句: main() {int t[3][2], *pt[3],k; for(k=0; k、C、2   256、若有以下定义: float x;int a,b; 则正确的switch 语句是 A)switch(x) B)switch(x) { case1、0:printf("*\n"); { case1,2:printf("*\n"); case2、0:printf("**\n"); case3:printf("**\n"); } } C)switch(a+b) D)switch (a+b); { case 1:printf("\n"); { case 1:printf(、"*\n"); case 1+2:printf("**\n"); case 2:printf("**\n"); } }、C、2   257、若有以下程序段,w和k都是整型变量: ┆ w=k; LB: if(w==0) go to LE; w--; printf("*"); goto LB; LE: ┆ 则不能与上面程序段等价的循环语句是 A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*"); C)w=k; D)w=k; while(w--!=0)printf("*");w++; do{ w-- ;printf("*");}while(w!=0);、C、2   258、若有以下程序片段: char str[]="ab\n\012\\\""; printf(%dd",strlen(str)); 上面程序片段的输出结果是 A)3 B)4 C)6 D)12、C、2   259、若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p); C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);、D、2   260、若有说明和语句: int a=5; a++; 此处表达式a++的值是 A) 7 B) 6 C) 5 D) 4、C、2   261、若有下面的程序片段: int a[12]={0}, *p[3], **pp, i; for(i=0; i、C、2   262、若有下面的说明和定义,则sizeof(struct aa) 的值是 struct aa { int r1;double r2; float r3; union uu{char u1[5]; long u2[2]; } ua; } mya; A)30 B)29 C)24 D)22、D、2   263、若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); { case 1、0: printf("*\n"); { case 1 printf("*\n"); case 2、0: printf("**\n"); case 2 printf("**\n"); } } C) switch(b) D) switch(a+b); { case 1: printf("*\n"); { case 1: printf("*\n"); default: printf("\n"); case 2: printf("**\n"); case 1+2: printf("**\n"); default: printf("\n"); } }、D、2   264、若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上 A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]、D、2   265、若变量a、i已正确定义,且i已正确赋值,合法的语句是 A) a==i B) ++i; C) a=a++=5; D) a=int(i);、B、2   266、若k是int型变量,且有下面的程序片段: k=-3 if(k<=0) printf("####") else printf("&&&&"); 输出结果是: A)#### B)&&&& C) ####&&&& D)有语法错误,无输出结果、D、2   267、若x是int型变量,且有下面的程序片段: for(x=3;x、D、2   268、若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是____ A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x、A、2   269、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for(j=0;j、A、2   270、请选出以下语句的输出结果 printf("%d\n",strlen("\t\"\065\xff\n")); A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出、A、2   271、请选出正确的程序段 A) int *p; B) int *s, k; scanf("%d",p); *s=100; … … C) int *s, k; D) int *s, k; char *p, c; char *p, e; s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; … *s=1; …、C、2   272、若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) { case 1:y=a+b;break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; } }、D、2   273、请选出以下程序的输出结果 #include fun(s, n1, n2) int *s, n1, n2; { int i, j, t; i=n1; j=n2; while(i、C、2   274、请读程序片段: #include main() { int a, b; for(a=1;b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } printf("%d\n",a); } 程序的输出结果是: A) 7 B) 8 C) 9 D) 10 、B、2   275、请选出以下程序的输出结果 #include main() { int a[ ]={ 1,2,3,4 },i; int x=0; for(i=0; i、C、2   276、请选出以下程序的输出结果 #include sub(x,y,z) int x, y, *z; { *z=y-x; } main() { int a, b, c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d\n", a,b,c); } A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7、B、2   277、请选出以下程序段的输出结果 #include main() { char sl[10], s2[10], s3[10], s4[10]; scanf("%s%s",s1,s2); gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4); } 输入数据如下:(此处代表回车符) aaaa bbbb cccc dddd A) aaaa B) aaaa bbbb bbbb cccc cccc dddd dddd C) aaaa D) aaaa bbbb bbbb cccc cccc dddd dddd eeee、A、2   278、请读程序: #include main() { float x,y; scan("%f",&x); if(x<5、0)&&(x!=2、0)) y=1、0/(x+2、0); else if (x(表示回车),则上面程序的输出结果是 A) 0、000000 B) 0、250000 C) 0、500000 D) 1、00000、C、2   279、请读程序: #include void fun(float *pl, float *p2, float *s) { s=( float * )calloc( 1, sizeof(float)); *s=*p1+ *(p2++); } main() { float a[2]={1、1, 2、2}, b[2]={10、0, 20、0}, *s=a; fun(a, b, s) printf("%f\n",*s); } 上面程序的输出结果是 A) 11、100000 B) 12、100000 C) 21、100000 D) 1、100000、D、2   280、请读程序: #include #include void fun( char *w, int m) { char s, *p1, *p2; p1=w; p2=w+m-1; while (p1、C、2   281、请读程序: #include #include main() {char *s1="AbCdEf", *s2="aB"; s1++; s2++; printf("%d\n",strcmp(s1,s2)); } 输出结果是: A)正数 B)负数 C)零 D)不确定的值、A、2   282、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A) 7和5 B) 6和3 C) 7和4 D) 6和4、A、2   283、能正确表示a和b同时为正或同时为负的逻辑表达式是 A) (a>=0‖b>=0)&&(a<0‖b=0&&b>=0)&&(a<0&&b0)&&(a+b<=0) D) a*b>0、D、2   284、请读程序: #include #include main() { float x,y,z; scan("%f%f",&x,&y); z=x/y; while(1) { if(fabs(z)>1、0) { x=y; y=z; z=x/y; } else break } printf("%f\n",y); } 若运行时从键盘上输入3、6 2、4(表示回车),则输出的结果是 A) 1、500000 B) 1、600000 C) 2、000000 D) 2、400000 、B、2   285、请读程序: #include #include void fun( char *s) { char a[10]; strcpy( a, "STRING"); s=a; } main() { char *p; fun(p); x=f(a, 3); printf("%s\n",p); } 上面程序的输出结果是(└┘表示空格) A) STRING└┘└┘└┘└┘ B) STRING C) STRING└┘└┘└┘ D) 不确定的 、D、2   286、请读程序: #include char fun(char *c) {if( *c<='Z' && *c>='A') *c-='A'-'a'; return *c; } main() { char s[81], *p=s; gets(s); while(*p) {*p=fun(p); putchar(*p); p++;} putchar('\n'); } 若从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door、B、2   287、请读程序: #include int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i、A、2   288、请读程序: #include main() { int mun=0; while(num<=2) { num++; printf("%d\n",num);} } 输出结果是 A) 1 B) 1 C) 1 D) 1 2 2 2 3 3 4 、C、2   289、请读程序: #include main() { 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; } 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=2 、A、2   290、请读程序: #include void fun( int *s) {static int j=0; do s[j]+=s[j+1]; while(++j、C、2   291、假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 的表达式是 A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1、0/a/b/c、D、2   292、假定x和y为 double型,则表达式x=2,y=x+3/2的值是 A) 3、500000 B) 3 C) 2、000000 D) 3、000000、D、2   293、假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w、D、2   294、合法的数组定义是 A)int a[]="string"; B)int a[5]={0,1,2,3,4,5}; C)char s="string"; D)char a[]={0,1,2,3,4,5};、D、2   295、假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do { b-=a; a++; } while (b-- 、D、2   296、当执行以下程序段时 A 循环体将执行一次 B 循环体将执行两次 C 循环体将执行无限次 D 系统将提示有语法错误 x=-1; do { x=x*x;} while(!x);、A、2   297、当执行下面程序且输入:ABC时,输出的结果是____ #include #include main() { char ss[10]="12345"; gets(ss);printf("%s\n",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789、A、2   298、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是____ A) c=b=a; B) (a=c) ‖(b=c) ; C) (a=c) &&(b=c); C) a=c=b;、C、2   299、不能把字符串:Hello!赋给数组b的语句是 A) char b[10]={'H','e','l','l','o','!'}; B) char b[10];b="Hello!"; C) char b[10];strcpy(b,"Hello!"); D) char b[10]="Hello!";、B、2   300、t为int类型,进人下面的循环之前,t的值为0 while( t=l ) { …… } 则以下叙述中正确的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对、B、2 301、变量a所占内存字节数是 A) 4 B) 5 C) 6 D) 8 union U { char st[4]; int i; long l; }; struct A { int c; union U u; }a;、C、3   302、标准函数 fgets(s, n, f) 的功能是 A) 从文件f中读取长度为n的字符串存入指针s所指的内存 B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C) 从文件f中读取n个字符串存入指针s所指的内存 D) 从文件f中读取长度为n- 1的字符串存入指针s所指的内存、B、3   303、rewind函数的作用是________。 A、重新打开文件 B、使文件位置指针重新回到文件末 C、使文件位置指针重新回到文件的开始 D、返回文件长度值、C、3   304、当____,可以不指定数组长度。 (A) 对静态数组赋初值 (B) 对动态数组赋初值 (C) 只给一部分元素赋值 (D) 对全部数组元素赋初值、D、3   305、以下程序的输出结果是____ i=5; i=++i*4+2; A、5 B、6 C、23 D、26、D、3   306、以下程序的输出结果是____ i=5; i=i++*4+2; A、5 B、6 C、23 D、26、C、3   307、以下程序的输出结果是____ main() {int x,y,z; x=y=z=0; ++x||++y||++z; printf(“%d,%d,%d\n”,x,y,z); } A、1,1,1 B、1,0,0 C、1,1,0 D、1,0,1、B、3   308、C语言中函数能否嵌套调用和递归调用? A、二者均不可 B、前者可,后者不可 C、前者不可,后者可 D、二者均可、D、3   309、C语言联合类型在任何给定时刻_____。 A、 所有成员一直驻留在结构中。 B、 只能有一个成员驻留在结构中。 C、 部分成员驻留在结构中。 D、 没有成员驻留在结构中。 、B、3   310、#include main() { int a,b,c,d; scanf("%d%d",&a,&b); c=gbs(a,b); d=gys(a,b); printf("a=%db=%d gbs=%d gys=%d\n",a,b,c,d); } gbs(a,b) int a,b; { int c; a=a>0?a:-a; b=b>0?b:-b; c=a*b; if(c==0) return(0); while(a!=b) if(a>b) a-=b; else b-=a; return(c/a); } gys(a,b) int a,b; { if(a*b==0) return(0); a=a>0?a:-a; b=b>0?b:-b; while(a!=b) if(a>b) a- =b;else b-=a; return(a); } 请写出上面程序的运行结果: A、a=30 b=63 gbs=189 gys=9 B、a=27 b=63 gbs=190 gys=10 C、a=27 b=63 gbs=189 gys=9 D、a=27 b=63 gbs=188 gys=10、C、3   311、请读程序: main() { int *p,x; x=10; *p=x; printf("%d\n",*p); } 请判断上面程序____ A、错误:*p=x; printf("%d\n"),*p); 正确:p=&x; printf("%d\n",p); B、错误:*p=x; printf("%d\n"),*p); 正确:p=**x; printf("%d\n",p);C、错误:int *p,x; 正确:int *(p),*(x);D、错误:*p=x; 正确:p=&x;、A、3   312、根据下面的定义,能打印出字母M的语句是____ A) printf("%c\n",class[3]、name); D) printf("%c\n",class[2]、name[0]); B) printf("%c\n",class[3]、name[1]); C) printf("%c\n",class[2]、name[1]); struct person { char name[9]; int age;}; struct person class[10]={"John",17, "Paul",19, "Mary",18, "Adam",16};、D、3    313、假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删 除并释放该结点的语句组是 A) free(q); p->next=q->next; B) (*p)、next=(*q)、next; free(q); C) q=(*q)、next; (*p)、next=q; free(q); D) q=q->next; p->next=q; p=p->next; free(p);、B、3   314、假定下列程序的可执行文件名为prg、exe,则在该程序所在的子目录下输入命令行: prg hello good后,程序的输出结果是 A) hello good B) hg C) hel D) hellogood main()(int argc, char *argv[]) { int i; if(argc<-0)return; for(i=1;i、B、3    315、假定以下程序经编译和连接后生成可执行文件PROG、EXE,如果在此可执行文件所在目录的DOS提示 符下键入: PROG ABCDEFGH IJKL,则输出结果为 A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGH main( int argc, char *argv[])) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); }、D、3   316、利用数组写出一个与int *p[4]等价的说明。 A、int &p[4]; B、int p[4]; C、int **p[4]; D、int *(*p[4]);、B、3   317、请选出以下程序段的输出结果 #include #define MIN(x,y) (x)、A、3   318、若a=5,b=3,c=4,逻辑表达式!(a+b)&&!c的值为____ (A) 0  (B) -1 (C) 1 (D) 2、C、3   319、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是____ A) EOF B) -1 C) 非零值 D) NULL、C、3   320、若程序中有下面的说明和定义 struct abc {int x;char y;} struct abc s1,s2; 则会发生的情况是 A) 编译进错 B) 程序将顺利编译`连接`执行 C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错、A、3   321、若想要通过异或运算对变量a进行高4位求反,低四位不变,则b应为____。(二进制表示) A、11110000 B、00001111 C、视a值而定 D、不可能实现、A、3    322、若要打开A盘上user子目录下名为abc、txt的文本文件进行读、写操作,下面符合此要求的函数调用 是 A) fopen("A:\user\abc、txt","r") B) fopen("A:\\user\\abc、txt","r+") C) fopen("A:\user\abc、txt","rb") C) fopen("A:\\user\\abc、txt","w")、B、3   323、若给定条件表达式(M)?(a++):(a--)则 其中表达式M和________等价。 A、(M==0) B、(M==1) C、(M!=0) D、(M!=0)、C、3   324、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是 A) p+1 B) a+1 C) a++ D) ++p、C、3   325、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元: int *p; p=__________ malloc( sizeof(int)); 则应填入 A)int B)int * C)(*int) D)(int *)、D、3   326、以下程序的输出结果是____ main() {int x,y,z; x=y=z=0; ++x&&++y||++z; printf(“%d,%d,%d\n”,x,y,z); } A、1,1,1 B、1,0,0 C、1,1,0 D、1,0,1、C、3   327、若以下程序所生成的可执行文件名为filel、exe ; 当打入以下命令行执行该程序时; FILE1 CHINA BEIJING SHANGHA1 程序的输出结果是 A、 XHIN VWIJINF AHANJHAI B、 FILE1 CHINA BEIJING C、 C B S D、 F C B main(int arge,char * argv []) { char ch [7]={"65ab21"}; int i,s=0; for (i=0;ch [i]>='0'&&ch [i]'9';i+=2) s=10*s+ch[i]-'0'; print ("%d\n",s)' }、A、3   328、若有定义和语句: int **pp,*p,a=10,b=20; pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp); 则输出结果是: A)10,20 B)10,10 C)20,10 D)20,20、D、3   329、若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d); C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);、A、3   330、若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是 A) i=*p; B) p*=*&j; C) i=&j; D) i=**p;、B、3   331、若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是 A) i= *p; B) *p=*&j; C) i=&j; D) i=* *p;、B、3   332、若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是 A) *p=&a; scanf("%ld",p); B) p=(long *)malloc(8); scanf("%ld",p); C) scanf("%ld",p=&a); D) scanf("%ld",&a);、A、3   333、若有以下的定义: int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表式是 A) p+=2, *(p++) B) p+=2,*++p C) p+=3, *kp++ D) p+=2,++*p、A、3   334、若有以下的说明,则对初值中字符'a'的引用方式为___。 static struct { char ch; double x; char a[]; }c[2][2]={{{'a',3、5,'bc'},{'c',4、5,'de'},{'m',8、6,'abc'}}}; A、c、ch B、c[0][0]、ch C、c[1][1]、ch D、a[0]、B、3   335、若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是 A) t[2][0] B) t[2][2] C) t[l][2] D) t[2][l] int t[3][3], *pt([3], k; for (k=0;k、C、3   336、若有下面的说明和定义: struct test { int ml; char m2; float m3; union uu {char ul[5]; int u2[2];} ua; } myaa; 则sizeof(struct test )的值是____ A) 12 B) 16 C) 14 D) 9、A、3   337、若有以下定义,则语句( )是正确的。 union data {int i; char c; float f; }a; int n; A: s=5 B:a={2,'a'1、2} C:printf("%d\n",a) D:n=a、C、3   338、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A) *p B) a[10] C) *a D) a[p-a]、B、3   339、若有以下定义和语句: double r=99, *p=&r; *p=r; 则以下正确的叙述是 A) 以下两处的*p含义相同,都说明给指针变量p赋值 B) 在"double r=99, *p=&r;"中,把r的地址赋值给了p所指的存储单元 C) 语句"*p=r;"把变量r的值赋给指针变量p D) 语句"*p=r;"取变量r的值放回r中、D、3   340、若有以下定义和语句: int w[2][3],(*pw)[3]; pw=w; 则对w数组元素非法引用是 A)*(w[0]+2) B)*(pw+1)[2] C)pw[0][0] D)*(pw[1]+2)、B、3   341、若有以下说明和定义 fun(int *c){ } main() { int (*a)()=fun,*b(),w[10],c; ┆ } 在必要的赋值之后,对fun函数的正确调用语句是 A) a=a(w); B) (*a)(&c); C) b=*b(w); D) fun (b);、B、3   342、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是 A) *p+6 B) *(p+6) C) *p+=5 D) p+5、C、3   343、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是 A) p=2*(int*)malloc(sizeof(int)); B) p=(int*)malloc(2*sizeof(int)); C) p=(int*)malloc(2*2); D) p=(int*)calloc(2,sizeof(int));、A、3   344、设已有定义: char *st="how are you"; 下列程序段中正确的是 A) char a[11], *p; strcpy(p=a+1,&st[4]); B) char a[11]; strcpy(++a, st); C) char a[11]; strcpy(a, st); D) char a[], *p; strcpy(p=&a[1],st+2);、A、3   345、设有如下程序: #include main() { int **k, *j, i=100; j=&i; k=&j; printf("%d\n", **k); } 上面程序的输出结果是 A) 运行错误 B) 100 C) i的地址 D) j的地址、B、3   346、设一整型(int)变量占用2个字节则下述共同体变量x所占用内存字节数为________。 union exp { int i; float j; double k; }x; A、14个 B、7个 C、8个 D、随机而定、C、3   347、设x的值为4,则表达式(++x)+(++x)+(++x)的值是( ) A:12; B:18; C:16; D:21 、D、3   348、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是 A) k=*p1+*p2; B) p2=k; C) p1=p2; D) k=*p1 * (*p2);、B、3   349、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为 A) 不定值 B) 4 C) 3 D) 1、C、3   350、设a=3,b=2,则表达式a^b>>2的值的二进制表示为________。 A、00000011 B、00000110 C、00000100 D、00000010、A、3 351、设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch 的值是____ A) A B) a C) Z D) z、B、3   352、设有如下定义: struct sk {int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是 A)(*p)、data、a B)(*p)、a C)p->data、a D)p、data、a、B、3   353、设有如下定义: int (*ptr)*(); 则以下叙述中正确的是 A)ptr是指向一维组数的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数的返回值是指向int型数据的指针、C、3   354、设有如下定义: int (*ptr)*(); 则以下叙述中正确的是 A) ptr是指向一维组数的指针变量 B) ptr是指向int型数据的指针变量 C) ptr是指向函数的指针,该函数返回一个int型数据 D) ptr是一个函数名,该函数的返回值是指向int型数据的指针、C、3   355、设有如下枚举类型定义: enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran}; 枚举量Fortran的值为 A) 4 B) 7 C) 102 D) 103、C、3   356、设有如下函数定义: int f(char *s) { char *p=s; while(*p!='\0') p++; return(p-s); } 如果在主程序中用下面的语句调用上述函数,则输出结果为 printf("%d\n",f("goodbey!")); A) 3 B) 6 C) 8 D) 0、C、3   357、设有说明int(*ptr)[m];其中的标识符ptr是(  )。 (A) M个指向整型变量的指针 (B)指向M个整型变量的函数指针 (C) 一个指向具有M个整型元素的一维数组的指针 (D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型量、C、3   358、为表示关系x≥y≥z,应使用C语言表达式 A) (x>=y)&&(y>=z) B(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z)、A、3   359、设有以下定义: typedef union { long i;int k[5];char c;}DATE; struct date { int cat;DATE cow;double dog;}too; DATE max; 则下列语句的执行结果是 printf("%d",sizeof(struct date)+sizeof(max)); A) 25 B) 30 C) 18 D) 8、B、3   360、设有以下说明语句 typedef struct { int n; char ch[8]; }PER; 则下面叙述中正确的是 A) PER 是结构体变量名 B) PER是结构体类型名 C) typedef struct 是结构体类型 D) struct 是结构体类型名、B、3   361、设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是 A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型、B、3   362、下列程序的输出结果是 main( ) { int a[5]={2,4,6,8,10},*p,* *k; p=a; k=&p; printf("%d",*(p++)); printf("%d\n",* *k); } A) 4 4 B) 2 2 C) 2 4 D) 4 6、C、3   363、下列程序的输出结果是 main( ) { char*p1,*p2,str[50]="xyz"; p1="abcd"; p2="ABCD"; strcpy(str+2,strcat(p1+2,p2+1); printf)"%s",str); } A) xyabcAB B) abcABz C) Ababcz D) xycdBCD、D、3   364、下列程序的输出结果是 A) 4 B) 6 C) 8 D) 10 int b=2; int func(int *a) { b += *a; return(b);} main() { int a=2, res=2; res += func(&a); printf("%d \n",res); }、B、3   365、下列程序的输出结果是 A) 5 B) 6 C) 7 D) 8 struct abc { int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0],a+s[1],b; printf("%d \n",t); }、B、3   366、下列程序的输出结果是 A) 非法 B)a[4]的地址 C)5 D)3 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p); }、C、3   367、下列程序的运行结果是 A) 6 3 B) 3 6 C) 编译出错 D) 0 0 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf("%d %d", a, b); }、B、3   368、请读程序: int x,y; for(x=1;x、C、3   369、下列程序执行后的输出结果是 A) 6 B) 8 C) 10 D) 12 #define MA(x) x*(x-1) main() { int a=1,b=2; printf("%d \n",MA(1+a+b));}、B、3   370、下列程序执行后的输出结果是 A) -32767 B) FFFE C) -1 D) -32768 main() { char x=0xFFFF; printf("%d \n",x--); }、C、3   371、下列分支语句合法的是(  )。(A) if(a>c) m=a else m=c (B) if a>c (if a>b) m=a (C) if (a>b && a>c) m=a (D) case 6,7:printf("reset\n") 、C、3   372、下面程序的输出结果为 struct st { int x; int *y; } *p; int dt[4]={10,20,30,40}; struct st aa[4]={ 50,&dt[0],60,&dt[1], 70,&dt[2],80,&dt[3] }; main() { p=aa; printf("%d\n", ++p->x ); printf("%d\n", (++p)->x); printf("%d\n", ++( *p->y)); } A) 10 B) 50 C) 51 D) 60 20 60 60 70 20 21 21 31、C、3   373、下列有关长度不同的数据进行运算时,系统的扩充操作正确的是______ A、右端对齐,短方按符号位扩充,无符号数以零扩充 B、右端对齐,短方按零扩充 C、左端对齐,短方按符号位扩充,无符号数以零扩充 D、左端对齐,短方以"1"扩充、A、3   374、下面程序的输出是 A) 32 B) 16 C) 8 D) 24 typedef union { long x[2]; int y[4]; char z[8]; } MYTYPE; MYTYPE them; main() { printf("%d\n", sizeof(them));}、C、3   375、下面程序的输出是 A) 0 B) 1 C) 3 D) 6 main() { struct cmplx { int x; int y; } cnum[2]={1,3, 2,7}; printf("%d\n",cnum[0]、y /cnum[0]、x * cnum[1]、x);}、D、3   376、请读程序: main( ) {struct cmplx{int x;int y;}cnum[2]={1,3,2,7}; printf("%d\n",cnum[0]、y/cnum[0]、x*cnum[1]、x); } 则上面程序的输出结果是____ A:0 B:1 C:3 D:6、D、3   377、写出下列程序段运行结果 unsigned int a=3,b=10; printf("%d\n",a<、A、3   378、以数据块为单位对数据进行整体 读写时如果ptr是指向内存中数据块的首地址,fp是文件指针,那么数据块中每个数据项的大小为(   )。   (A) sizeof(*ptr) (B) *ptr (C) sizeof(ptr) (D) sizeof(*fp)、A、3   379、已知字符0的ASCII码为十六进制的30,下面程序的输出是 A) 6 B) 9 C) 0 D) 3 main() { union { unsigned char c; unsigned int i[4]; } z; z、i[0]=0x39; z、i[1]=0x36; printf("%c\n",z、c);}、B、3   380、以下程序的输出是____ A) 10 B) 11 C) 51 D) 60 struct st { int x; int *y;} *p; int dt[4]={ 10,20,30,40 }; struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main() { p=aa; printf("%d\n",++(p->x)); }、C、3   381、以下程序的输出结果是 struct HAR { int x, y; struct HAR *p;} h[2]; main() { h[0],x=1;h[0];y=2; h[1],x=3;h[1];y=4; h[0],p=&h[1],p=h; printf("%d %d \n",(h[0],p)- >x,(h[1],p)->y); } A) 12 B) 23 C) 14 D) 32、D、3   382、以下程序的输出结果是 union myun { struct { int x, y, z; } u; int k; } a; main() { a、u、x=4; a、u、y=5; a、u、z=6; a、k=0; printf(%d\n",a、u、x); } A) 4 B) 5 C) 6 D) 0、D、3   383、请读程序: main() {union {int k; char i[2]; }*s,a; s=&a; s--i[0]=0x39;s--i[1]=0x38; printf(“%x、n”,s--k); } 则上面程序的输出结果是____ A)3839 B)3938 C)380039 D)390038、A、3   384、有如下定义 struct person{char name[9]; int age;}; strict person class[10]={"Johu", 17, "Paul", 19 "Mary", 18, "Adam 16,}; 根据上述定义,能输出字母M的语句是 A) prinft("%c\n",class[3]、mane); B) pfintf("%c\n",class[3]、name[1]); C) prinft("%c\n",class[2]、name[1]); D) printf("%^c\n",class[2]、name[0]);、D、3   385、有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是 A) 3 B) 4 C) 5 D) 有语法错、A、3   386、以下选项中,能定义s为合法的结构体变量的是 A) typedef struct abc B) struct { double a; { double a; char b[10]; char b[10]; } s; } s; C) struct ABC D) typedef ABC { double a; { double a; char b[10]; char b[10]; } } ABC s; ABC s;、B、3   387、以下对结构体类型变量的定义中,不正确的是 A) typedef struct aa B) #define AA struct aa { int n; AA {int n; float m; float m; }AA; }td1; AA td1; C) struct D) struct { int n; { int n; float m; float m; }aa; }td1; stuct aa td1;、C、3   388、以下程序运行后,输出结果是 A) 1 B) 7 C)9 D)11 fut (int **s,int p[2][3]) { **s=p[1][1];) main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut (&p,a); printf("%d\n",*p); }、C、3   389、有语句char str1[10],str2[10]={"china"};则能将字符串china赋给数组str1的正确语句是________。 A、str1={"china"}; B、strcpy(str1,str2); C、str1=str2; D、strcpy(str2,str1);、B、3    390、有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点b连 接到结点a之后的语句是 A) a、next=q; B) p、next=&b; C) p->next=&b; D) (*p)、next=q; struct node { char data; struct node *next; { a,b,*p=&a,*q=&b; data next data next、B、3   391、有以下程序段 char arr[]="ABCDE"; char *ptr; for(ptr=arr;ptr main() { union { int k; char i[2]; } *s,a; s=&a; s->i[0]=0x39; s->i[1]=0x38; printf("%x\n",s->k); } 输出结果是 A) 3839 B) 3938 C) 380039 D) 390038、D、3   392、有以下程序 #include "stdio、h" struct stu { int num; char name[10]; int age; }; void fun(struct stu *p) { printf("%s\n",(*p)、name); } main() { struct stu students[3]={ {9801,"Zhang",20}, {9802,"Wang",19}, {9803,"Zhao",18} }; fun(students+2); } 输出结果是 A) Zhang B)Zhao C) Wang D) 18、B、3   393、运行下面的程序,如果从键盘上输入: ab c def 则输出结果为 A、a B、a C、ab D、abcdef b b c c c d d d e f #include #define N 6 main () { char c[N]; int i=0; int i=0; for ( ;i ss (char *s) { char *p=s; while (*、p)p++; return(p-s); } main() { char *a="abded"; int i; i=ss(a); print ("%d\n",i); }、C、3   394、在C程序中,可把整型数以二进制形式存放到文件中的函数是 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数、A、3   395、在C语言中,fclose()函数返回____时, 表示关闭不成功 (A) 0 (B) -1 (C) EOF (D) 非零值、D、3   396、在C语言中,如果下面的变量都是int类型,则输出的结果是(  )。 sum=5,p=5;p=sum++,p++,++p; printf("%d\n",p); A、 7 B、 6 C、 5 D、 4、A、3   397、在scanf( )中,表示本输入项在读入后不赋给相应变量的格式说明字符是____ (A) L (B) h (C) C (D) *、D、3   398、在TC语言中int和short两种数据所占用的内存____ A) 均为2个字节 B) 由用户自己定义 C) 由所用机器的机器字长决定 D) 是任意的、A、3   399、在以下定义中,标识符p______ int (*p)[3] A) 定义不合法 B) 是一个指针数组名,每个元素是一个指向整数变量的指针 C) 是一个指针,它指向一个具有三个元素的一维数组 D) 是一个指向整型变量的指针、C、3   400、字符'0'的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是 #include main( ) { union { int i[2]; long k; char c[4]; }r,*s=&r; s->i[0]=0x39; s- >i[1]=0x38; printf("%c\n",s->c[0]) } A) 39 B) 9 C) 38 D) 8、B、3

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档