C语言机考复习题(1)_第1页
C语言机考复习题(1)_第2页
C语言机考复习题(1)_第3页
C语言机考复习题(1)_第4页
C语言机考复习题(1)_第5页
免费预览已结束,剩余60页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、判断题:..5.16.17.C 程序的基本组成单位是函数 T C 程序可以由一个或多个函数组成 T C 语言可以不用编译就能被计算机识别执行 F(C 语言必须编译成能被计算机识别的机器 代码才能执行)main()函数必须放在其它函数之前F (任意位置)每个C程序中都必须要有一个main()函数T在C程序中main()函数的位置是固定的F (任意位置)C程序中的main()函数必须放在程序的开始位置。 C语言编译时不检查语法F (编译即进行语法检查)C 程序中注释部分可以出现在程序中任意合适的地方 C 程序中一行可以写多条语句 T

2、分号是 C 语句之间的分隔符,不是语句的一部分F (任意位置)F (是语句不可缺少的部分)4.花括号“ 和“只能作为函数体的定界符F(可以转义当作字符)C程序中的每行只能写一条语句F(一行可有多个语句)C 程序的执行总是从 main 函数开始,在 main 函数结束 T C 程序的执行总是从 main 函数开始,在程序的最后一个函数中结束 F +(i+1); 是非法的赋值语句 T(+ 只能对变量操作,而 i+1 不是变量 ) 用户标识符中不可以出现中划线,但可以出现下划线T (用户标识符由字母、数字、下划线组成,且以字母或下划线开头,不能有关键字) 用户标

3、识符中可以出现下划线,但不可以放在用户标识符的开头 C 语言中, Area 与 area 是不同的标识符 T( 大小写有区别 ) C 语言中有逻辑类型 F(C 语言中既没有逻辑类型也没有集合类型 int a=b=O;是正确的定义语句。F(b未定义)1.2E0.5 是符合 C 语言语法的实型常量 F(E 后面指数必须为整数0.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是 3.500000F(3/2=1 ,因为都是整型) 可以用关系运算符对字符串的大小进行比较F(可以用字

4、符串比较函数strcmp格式:strc mp(字符数组名1,字符数组名2) 两个字符串中的字符个数相同时才能进行字符串大小的比较F设有定义语句:char b= 123;则变量b包括4个字符F(八进制123对应十进制83对应字 符 S)若有定义语句:char s10=123456700;,贝U strlen(s)的值是9F (结束符之前) a=b+c=1 是正确的赋值表达式 F若变量 a、 i 已正确定义,且 i 已正确赋值,则 a=a+=5; 是正确的赋值语句 F 除逗号运算符外,赋值运算符的优先级最低 T C 语言中,运算对象必须是整型数据的运算符是 %T 对于单目运算符+、-,它们的运算对

5、象可以是任何变量和常量F(只能是变量)表达式: 10!=9 的值是 trueF(1) 表达式 1|2|3|4的值是 若变量 c 为 char 类型, 若变量 c 为 char 类型, sizeof(float) 的值是 4T sizeof(double)是一种函数调用 F(是一个整型表达式) if(xy);是正确的if语句T(空语句)+、1。T则表达式 (c= a)&(c= z) 能正确判断出 c 为小写字母 T 则表达式 a=cb)&(n=cd)A) B) C) D)16.A) B)C)0123设 x、 y、 t 均为 不定值43m、n均为int型变量,且 a=5、b=6、c=7、d=8、m

6、=2、n=2,则逻辑表达 运算后, n 的值为 ( C )(短路特性 )int 型变量,则执行语句: x=y=3;t=+x|+y; 后, y 的值为 ( C )A)无限次B)有语法错,不能执行C)一次也不执行D)执行 1 次18.能正确表示逻辑关系“ a=10或a=10 or a=10B)a=0|a=10&a=10|a=019.表示关系 xW yw z的c语言表达式为( A )A)(x=y)&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(yb)|(n=cd) 后A)0B)1C)2D)321.以下关于逻辑运算符两侧运算对象的叙述中正确的是(D)A)只能是整数 0 或

7、 1B)只能是整数 0 或非 0 整数C)可以是结构体类型的数据D)可以是任意合法的表达式r t ._r ,1-,11.T-r- I、1. 11f .,- f f I-I_1、 、. I 1r- I-I22.若 x 和 y 都是 int 型变量, x=100 ,y=200 ,且有下面的程序片段: printf(%d,(x,y);上面程序片段的输出结果是 ( A )A)200B)100C)100 200D)输出格式符不够,输出不确定的值23.在函数调用过程中,如果函数funA 调用了函数 funB ,函数 funB(B )A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用

8、D)C 语言中不允许这样的递归调用24.以下程序的输出结果是 ( A )main() A)intk=17;printf(%d ,%o,%x n,k,k,k);17,021,0x11B)17,17,17n 的值为 ( A ) 。又调用了函数 funA ,则k=0; while(k=1)k+; while 循环执行的次数是 ( A )D)17. 有以下程序段 intC)D)25.A)B)C)D)26.17,0x11,02117,21,11X、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B )。INPUT x 、 y、 z;scanf(%d%d%d,&x,&y,&z)

9、; scanf(%d%d%d,x,y,z);read(%d%d%d,&x,&y;&z); 有以下程序main() int i;for(i=0;i3;i+)switch(i)case 0: prinft(%d,i); case 2: prinft(%d,i); default: prinft(%d,i); 程序运行后的输出结果是 ( C ) A)B)C) D)27.A)B)C)D)28.( C A)B)C)D)29.022111021021000122012C 语言中用于结构化程序设计的三种基本结构是 ( A ) 顺序结构、选择结构、循环结构 if 、 switch、 break for、 wh

10、ile 、 do-whileif、 for 、 continue 在嵌套使用 if 语句时, C 语言规定 else 总是) 和之前与其具有相同缩进位置的 if 配对 和之前与其最近的 if 配对 和之前与其最近的且不带else的if配对和之前的第一个 if 配对 设有以下程序片段 :switch(X)case A: case B: default:printf(A); printf(B); printf(error);假设 X=A, 程序输出结果是 ( D )A)AB)BC)errorD)ABerror30.读程序:main() int num=0;while (num=2) num+; p

11、rintf(%d 上面程序的输出结果是 ( C A) B) C) D) 31.1211以下程序段的执行结果是int x=5; doprintf(%2dn,x-); while(!x); A) B) C) D) 32. ( D A) f=0; for(i=1;i=n;i+) f*=i; B) f=1; for(i=1;i1;i+) f*=i; D) f=1; for(i=n;i=2;i-) f*=i;33. 以下程序的输出结果是 ( main() int a, b; for(a=1,b=1;a=10) break; if(b%3=1)b+=3; continue; printf(%dn,a);

12、A) B) C) D) 34. A) B) C) D) 35. A) B),num);( A )。5 无任何输出4陷入死循环设变量已正确定义,则以下能正确计算 f=n! 的程序段是)101654 下列合法的数组定义是 ( int a=string;int a5=0,1,2,3,4,5; char a=string;char a=0,1,2,3,4,5; 以下定义语句中,错误的是 int a=1,2;char *a3;)。)。char s10=test;int n=5,an; 以下正确的数组定义语句是 ( int y14=1,2,3,4,5;float x3=1,2,3; long s23=1,

13、1,2,1,2,3;int m14=4; 以下程序的输出结果是 ( CC)D)36.A)B)C)D)。37. main() int i,a10; for(i=9;i=0;i-) ai=10-i;printf(%d%d%d,a2,a5,a8);258741852369若有定义语句: int a36; a04 a13 a03 a14 以下数组定义中不正确的是 ( a23;b3=0,1,2,3; c100100=0; d3=1,2,1,2,3,1,2,3,4;A)B)C)D),按在内存中的存放顺序, a 数组的第 10个元素是 ( B )38.A)B)C)D)39.int int int intA)

14、B)C)D)以下程序的输出结果是 ( A )。38. main() int a44=1,3,5,2,4,6,3,5,7;printf(%d%d%d%dn,a03,a12,a21,a30);065014705430输出值不定 以下程序的输出结果是)A)B)C)D)41.( B main() char cf35=AAAA,BBB,CC; printf(%sn,cf1);AAAABBBBBBCCCC设有数组定义 : char array =China; 则数组 array 所占的空间为 ( C ) 4 个字节5 个字节A)B)C)D)42.A)B)C)D)43.A)B)C)D)44.A) B) C)

15、D) 45.( B A) B) C) D)46.char str110,str210=books;则能将字符串 books 赋给数组 str1 的正确语句是 ( B )。 A)B) C)D) 47.A)B)C)D)48.A)B)C)D)49.A)B)C)D)50.A)B)C)D)6 个字节7 个字节以下选项中,不能正确赋值的是 ( A )。 char s110;s1=Ctest;char s2=C,t,e,s,t;char s320=Ctest;char *s4=Ctestn; 给出以下定义:char x=abcdfeg;char y=a,b,c,d,e,f,g; 则正确的叙述为 ( C )。

16、数组 x 和数组 y 等价数组 x 和数组 y 长度相同数组 x 的长度大于数组 y 的长度数组 x 的长度小于数组 y 的长度 若要求从键盘读入含有空格字符的字符串,应使用函数 )getc()gets()getchar()scanf() 有语句:str1=Books; strcpy(str1,str2);str1=str2; strcpy(str2,str1);以下语句的输出结果是 ( A ) printf(%dn,strlen(tc065xffn);5148 输出项不合法,无正常输出 若有语句 int *point, a=4; 和 point=&a; 下面均代表地址的一组选项是 ( D )

17、 。a, point, *&a &*a, &a, *point *&point, *point, &a &a, &*point, point 设已有定义: float x; ,则以下对指针变量 p 进行定义且赋初值的语句中正确的是 ( D ) float *p = 1024; int *p = (float)x;float p = &x; float *p = &x;设有语句: int a=1,b=2,*p1=&a,*p2=&b; 以下可使指针 p1 指向变量 b 的赋值语句是 ( C )。 p1=*p2*p1=p2 p1=p2 *p1=*p2 有以下程序main()51.int a=1,2,

18、3,4,5,6,7,8,9,0,*p;for(p=a;pa+10;p+)printf(%d,*p); 程序运行后的输出结果是 ( A) B) C) D)52. A) B) C) D)53. A) B) C) D)54. A) B) C) D)55.1,2,3,4,5,6,7,8,9,0,2,3,4,5,6,7,8,9,10,1,0,1,2,3,4,5,6,7,8,9,A)若已定义 char s10;s+1 s+(s 为常量 ,不能自增 &s0+1&s1 在以下选项中,操作不合法的一组是 ( B )。 int x6, *p; p=&x0;int x6, *p; *p=x;int x6, *p;

19、p=x;int x6,p; p=x0; 以下叙述中正确的是 ( B ) 全局变量的作用域一定比局部变量的作用域范围大静态(static)类别变量的生存期贯穿于整个程序的运行期间 函数的形参都属于全局变量未在定义语句中赋初值的 auto变量和static变量的初值都是随机值 有以下程序则在下面表达式中不能表示 s1 的地址的是 ( B )。main() char s=159,*p;p=s;printf(%c,*p+);printf(%c,*p+); 程序运行后的输出结果是 ( A A) B) C) D) 56. A) B) C) D) 57.)15161259 以下语句或语句组中,能正确进行字符

20、串赋值的是 char char char char 下面程序段的运行结果是 ( C )。*sp; *sp=right!; s10; s=right!; s10; *s=right!; *sp=right!;char *p= abcdefgh; p+=2;printf(%dn, strlen(strcpy(p, ABCD);A)B)C)D)61247( D)58. 下面程序段的运行结果是 ( B )。 char str = ABC, *p=str;printf(%dn, *(p+3);A)B)C)D)59.670字符c的地址字符 C以下程序运行后,输出结果是 ( C )main() char *

21、s=abcde;s+=2; printf(%dn , s); cde 字符 c 的 ASCII 码值 字符 c 的地址 出错 有以下程序:A)B)C)D)60.main() char *p10=abc,aabdfg,dcdbe,abbd,cd;printf(%dn, strlen(p4);执行后输出结果是 ( A )A)B)C)D)61.A)B)C)D)62.A)B)C)D)63.2345 若有语句: char *line5 ;,以下叙述中正确的是 ( A ) 定义 定义 定义 定义line 是一个数组,每个数组元素是一个基类型为line 是一个指针变量,该变量可以指向一个长度为line 是一

22、个指针数组,语句中的 * 号称为间址运算符 line 是一个指向字符型函数的指针char 的指针变量5 的字符型数组设有如下定义 : char *aa2=abcd,ABCD ;则以下说法中正确的是 ( D )。 aa数组成元素的值分别是abed和ABCDaa是指针变量,它指向含有两个数组元素的字符型一维数组aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址aa数组的两个元素中各自存放了字符串abed和ABCD的首地址以下函数调用语句中含有 ( B )个实参。fun(exp1,exp2),(exp3,exp4,exp5);A)B)C)D)64.A)B)C)D)65.A)B)1245

23、 以下所列的各函数首部中,正确的是 ( C ) void play(var a :integer,var b:integer) void play(int a,b) void play(int a,int b)Sub play(a as integer,b as integer)C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是 void int( B)C) floatD) double66. 下面的函数调用语句中 func 函数的实参个数是 ( A)func(f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8);3458 有以下程序A)B)C)D)f

24、un(int x, int y) static int m=0, i=2;i+=m+1; m=i+x+y; return m; main() int j=1, m=1, k;k=fun(j,m); printf(%d,k); k=fun(j,m); printf(%dn,k); 执行后的输出结果是67.( B)A)5, 5B)5, 11C)11, 11D)11, 568.以下函数值的类型是(A )fun ( float x )float y; y= 3*x-4; return y;A)intB)不确定C)voidD)float69.以下程序的输出结果是(C )fun(int x, inty,

25、int z)z=x*x+y*y;main()int a=31;fun(5,2,a); printf(%d,a);A)0B)2C)31D)无定值70.有以下程序voidf(int x,i int t;y)if(xy) t=x; x=y; y=t; main() int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c); printf(%d,%d,%dn,a,b,c); 执行后输出的结果是 ( D ) A) B) C) D)71.A)B)C)D)72.3,4,55,3,45,4,34,3,5在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 地址传递单向值传递

26、由实参传给形参,再由形参传回实参 传递方式由用户指定有以下程序( B)void f(int b) int i;for (i=2; i6; i+) bi *= 2; main() int a10=1,2,3,4,5,6,7,8,9,10, i;f(a);for (i=0; i10; i+) printf(%d, ai); 程序运行后的输出结果是 ( B ) A) B) C) D)73. ( A A) B) C) D) 74. A) B) C) D)1,2,3,4,5,6,7,8,9,10,1,2,6,8,10,12,7,8,9,10,1,2,3,4,10,12,14,16,9,10,1,2,6,

27、8,10,12,14,16,9,10, 在 C 语言中,函数返回值的类型最终取决于) 函数定义时在函数首部所说明的函数类型 return 语句中表达式值的类型 调用函数时主调函数所传递的实参类型 函数定义时形参的类型 调用一个函数,此函数中没有 return 语句,下列说法正确的是:该函数 没有返回值 返回若干个系统默认值 能返回一个用户所希望的函数值 返回一个不确定的值 (函数体可以没有 return 语句,程序执行到末尾为“”时结束,然后返回调用函数,但没有确定的函数值返回75. 若有以下调用语句 ,则不正确的 fun 函数的首部是 ( D ) main() int a50,n;)fun(

28、n, &a9);A) B) C) D) 76.void swap(char *x, char *y)void fun(int m, int x) void fun(int s, int h41) void fun(int p, int *s) void fun(int n, int A) 有以下程序 char t;t=*x; *x=*y; *y=t; main() char *s1=abc, *s2=123;swap(s1,s2); printf(%s,%sn,s1,s2);)123,abcabc,1231bc,a23321,cba以下程序的输出结果 ( B )程序执行后的输出结果是 ( CA

29、)B)C)D)77.#include sub(int x,int y,int * z) *z=y-x; main() int a, b, c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(%d,%d,%dn, a,b,c);5,2,3-5,-12,-7-5,-12,-175,-2,-7 已定义以下函数A)B)C)D) 不确定的值 一个整数 形参 p 中存放的值 形参 p 的地址值 已定义以下函数:78. int fun( int *p) return *p; fun 函数返回值是 ( BA)B)C)D)79. fun (char* p2, ch

30、ar* p1) while (*p2=*p1) != 0) pl+;p2+; 函数的功能是 ( A A) B) C) D) 80.)将 p1 所指字符串复制到 p2 所指内存空间 将 pl 所指字符串的地址赋给指针 p2 对 pl 和 p2 两个指针所指字符串进行比较 检查 p1 和 p2 两个指针所指字符串中是否有 有以下程序0#include int fun(int a, int b) if (b=0)else main()return a;return (fun(-a, -b); printf(%dn, fun(4, 2); 程序的运行结果是 ( B ) A) B) C) D) 81.

31、( B int a,b; void fun() a=100; b=200; main() int a=5, b=7;fun();printf(%d%d n, a,b); A) B) C) D) 82. ( D int f() static int i=0;int s=1; s+=i; i+; return s; main() int i,a=0;for(i=0;ib) a=b, b=c; c=a; printf(a=%d b=%d c=%dn, a, b, c); 程序的输出结果是 ( A )A)B)C)D)88.a=10 b=50 c=10a=10 b=50 c=30a=10 b=30 c=

32、10a=50 b=30 c=50 下面程序段的运行结果是 ( C )char a = language, *p;p=a;while (*p !=u) printf(%c,*p-32); p+; A)B) languageLANGUAGEC) LANG)876 和 543.00000087 和 6.00000087 和 543.00000076 和 543.000000 设变量定义为 int A=5,B=6, 表达式 (+A=B-)?+A:-B 的值是 ( C )。5678 若有以下说明 :int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;则数值为

33、4 的表达式是 ( D )A)B)C)D)92.6789 有以下程序6,5,A,B6,5,65,666,5,6,56,5,6,689. 设有定义: int a; float b; 执行 scanf(%2d%f,&a,&b); 语句时,若从键盘输入 876 543.0回车,a和b的值分别是( BA)B)C)D)90.A)B)C)D)91.ag-c a4 ad-c ad-c 有以下程序include stdio.h int abc(int u,int v);main ()int a=24,b=16,c; c=abc(a,b); printf(%dn,c);int abc(int u,int v)

34、int w;while(v) w=u%v; u=v; v=w return u;输出结果是 ( C )A)B)C)D)93.main() char a,b,c,d;scanf(%c,%c,%d,%d,&a,&b,&c,&d); printf(%c,%c,%c,%cn,a,b,c,d);若运行时从键盘上输入:6,5,65,66回车 ,则输出结果是(A )(注:字符A的ASCII码为65)A)B)C)D)94. 下列程序的输出结果是 ( main() char *p1,*p2,str50=xy z;p1=ab cd; p2=A BCD; strcpy(str+2,strcat(p1+2,p2+1)

35、; printf(%s,str); A)B)C)D)95.xyabcAB abcABz ABabcz xycdBCD 有以下程序cdBCDxycbBCD连接cdBCD# include main() int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(%d %d n,*p,*q); 程序运行后的输出结果是 ( A ) ( 题目中没有给 q 分配存储单元,只是简单的给它赋了一个值,所以程序的运行结果是 611NULLpointerassignment ,也就是运行后报错。 )A)B)C)D)96.运行后报错665有以下程序61110#include main() int i,j, m=55; for(i=1;i=3;i+) for(j=3; jbc) printf(%dn,d);else if(c-1=d)=1) printf(%dn,d+1);elseprintf(%dn,d+2);执行后输出的结果是 ( B )A) 2B)C) 43D)98.A)B)C)D)99.编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论