公务人员-计算机类C语言学习知识程序设计.doc

举报
资源描述
-` 《C语言程序设计》复习参考资料 一. 选择题 1.以下关于运算符优先顺序的描述中正确的是( C )。 A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B.逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 2.下列选项中合法的变量名是_____C____ A. #define B. int C. a594_3 D. abs(x) 3.以下正确的描述是( A )。 A. break语句的作用是结束整个循环的执行 B.在C程序中,注释说明只能位于一条语句的后面 C. 在循环体内使用break语句或continue语句的作用相同 D. 从多层循环嵌套中退出时, 只能使用goto语句 4.以下说法正确的是( C) A.#define 和 printf 都是 C 语句。 B.#define 是C语句,而printf不是。 C.若程序中要调用数学函数,必须在文件开头输入语句 #include “math.h” D. #define 和 printf 都不是 C 语句。 5.下面的函数定义正确的是______D________ A) float fun (float x ; float y) {return x*y;}    B) float fun (float x,y) {return x*y;} C) float fun (x,y) {int x,y;return x*y;}    D) int fun (int x, int y) {return x*y;} 6.执行下面语句后的输出为( D ) int i=-1; if (i<=0) printf(“****\n”) else printf(“%%%%\n”) A). **** B). %%%% C). %%%%c D). 有语法错误,不能正确执行 7.以下程序的输出结果是( A )    void main( )    {int k=17;    printf("%d, %o, %x \n ", k, k, k );    }    A). 17, 21, 11 B). 17, 17, 17 C). 17, 0x11, 021 D). 17, 21, 1 8.以下不正确的叙述是 ( C )   A)#define是宏定义命令   B)宏定义只是做简单的置换,不做正确性检查   C)宏定义是C语句,必须在行末加分号   D)printf是C语句,但#define不是。 9.一个C语言程序是由( D )   A) 一个主程序和若干子程序组成 B)若干子程序组成   C) 若干过程组成 D) 函数组成 10.C语言规定,在一个源程序中,main()函数的位置( C )。 A.必须在最开始 B.必须在最后 C.可以任意 D.必须在系统调用的库函数的后面  11.以下对二维数组a的正确说明是( C )。 A) int a[3][]; B) floatf a(3,4); C) char a[1][3]; D) float a(3)(5); 12.若有说明: int a[3][2]={10};则下面正确的叙述是( D ) A)只有元素a[0][0]可得到初值10 B)此说明语句不正确:。 C)数组a中各元素都可得到初值,但其值不一定为0。 D)数组a中每个元素均可得到初值10 13.以下叙述不正确的是( C )。 A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是语句 D) 只能在循环体内和switch语句体内使用break语句 14.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与( B ) 配对。 A) 缩排位置相同的if B) 其之前最近的未配对的if C) 之后最近的if D) 同一行上的if 15. 能正确表示a和b同时为正或同时为负的逻辑表达式是( B ) A)(a>=0||b>=0)&&(a<0||b<0) B)(a>=0&&b>=0)||(a<0&&b<0) C)(a+b>0)&&(a+b<=0) D) (a-b>0)&&(a-b<=0) 16.已知x =5,ch=A,y=0,则表达式(x > = y && ch,则输出结果是( C ) A) 0,d,6 B) 6,d,6 C) 6,D,6 D) 6,D,0 30.printf()函数中用到格式符%-7s ,其中数字7表示输出的字符串占用7列。如果字符串 长度小于7,则输出按方式 ( A )  A) 从左起输出该字串,右补空格  B) 按原字符长从左向右全部输出  C) 右对齐输出该字串,左补空格  D) 输出错误信息 31.以下能正确地定义整型变量a,b和c 并为其赋初值3的语句是( A ) A) int a=3,b=3, c= 3; B) int a,b, c= 3; C) a= 3,b=3,c=3; D) a= b= c=3; 32. 以下程序的输出结果是( D ) void main( ) {int x=6,y=6,i; for(i=2;x>4;y=++i) printf("%d,%d ",x--,y); }  A) 5,5 5,3 B) 6,6 2,3 C) 6,5 5,2 D) 6,6 5,3 33.以下程序的输出结果是( B ) void main( ) {int w=4; int fun(int k); fun(w); printf("\n"); } fun(int k) {if(k>0) fun(k-1); printf("%d ",k); } A) 4 3 2 1 B) 0 1 2 3 4 C) 1 2 3 4 D) 4 3 2 1 0 34.下面程序的输出是( B ) main() { int x=023; printf("%d\n", --x); } A). 17 B). 18 C). 23 D). 24 35.以下程序的输出结果是( C ) main() { char ch[3][4]={ "123","456","78"},*p[3]; int i; for(i=0;i<3;i++) p[i]=ch[i]; for(i=0;i<3;i++) printf("%s",p[i]); } A). 123456780 B). 123 456 780 C). 12345678 D). 147 36.下面程序的输出结果为( B ) char *alpha[6]={"ABCD","EFGH","IJKL", "MNOP","QRST","UVWX"}; char **p; void main( ) {int i; p=alpha; for(i=0;i<4;i++) printf("%c",(*p)[i]); printf("\n"); } A). EIMC B). ABCD C). EFGH D). AEIM 37.根据下面的定义,能打印出字母M的语句是( D ) struct person {char name[9]; int age;}; struct person class[10]={ "John",17, "Paul",19, "Mary",18, "Adam",16 } A). printf("%c\n",class[3].name); B). printf("%c\n",class[3].name[1]); C). printf("%c\n",class[2].name[1]); D). printf("%c\n",class[2].name[0]); 38. 有以下程序    void main( )    { int p[7]={11,13,14,15,16,17,18},i=0,k=0;     while(i<7&&p[i]%2) {k=k+p[i]; i++;}     printf("%d\n",k);    }   执行后输出结果是( D )   A) 58 B) 56 C) 45 D) 24 39. 以下程序的输出结果是( A ) void main( ) { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p; p=&x[1][1]; for(i=0;i<6;i+=3) printf("%d ",p[i]); } A) 5 2 B) 5 1 C) 5 3 D) 9 7 40.以下程序的输出结果是( A ) # include    void main( ) { char *a=”abcdefghi”;      void fun( char *s ); fun(a); puts(a); } void fun(char *s ) { int x,y; char c; for(x=0,y=strlen(s)-1;xname 49.下面的程序输出是( B ) 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);} A). 1 B). 2 C). 7 D). 10 50.下面的程序输出是( A ) main() { int x=100,a=10,b=20,ok1=5,ok2=0;   if(a=1) && (x<=10) &&(x> =50) && (x<=60) B) (x>=1) || (x<=10) || (x>=50) || (x<=50) C) (x>=1) && (x<=10) || (x>= 50) && (x<=60) D) (x > =1)|| (x< =10) && (x> =50) || (x<=60) 61.以下程序的输出结果是( D ) # include  main() { char *p1,*p2,str[50]="ABCDEFG"; p1="abcd"; p2="efgh"; strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf("%s",str); } A). AfghdEFG B). Abfhd C). Afghd D). Afgd 62.以下程序的输出结果是( A ) main() {int i; for(i=1;i<6;i++) { if(i%2) {printf("#");continue;} printf("*"); } printf("\n"); }  A). #*#*# B). ##### C). ***** D). *#*#* 63.能表示10≤a≤15 的关系表达式是( C ) A.a>=10 or a<=15 B.a>=10||a<=15 C.a>=10&&a<=15 D.a>=10 & a<=15 64. 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是( A )   A. if((a>b) &&(b>c) ) k=1; B. if((a>b) ||(b>c) ) k=1   else k=0;   C. if(a<=b) k=0; D. if(a>B) k=1;    else if(b<=c) k=1; else if(b>C) k=1;    else k=0; 65.设int x[]={2,4,6,8},y,*p=&x[1];则执行语句 y=(*--p)++;后数组元素x[0]的值为 ( B ).   A. 2 B. 3 C. 4 D. 5 66.在下面关于函数的描述中错误的是( D )   A.在一个源文件中,如果函数定义在先,调用在后,则不必声明该函数 B.如果一个函数在一个源文件里定义,而调用在另一个源文件中,则必须在调用之前 声明该函数   C.函数的声明应使用函数原型   D.在一个源文件中,如果自定义函数调用在先,定义在后,则不必声明该函数 67. 若有int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*q)[3]=a;*q=a[0];则能够 正确表示数组元素a[1][2]的表达式是( C )。 A. *((*q+1)[2] B. *(*(q+5)) C. *(*(q+1)+2) D. (*q+1)+2 68.设int x[]={1,3,5,7,9,11,13},*p=x;则不能正确引用数组元素的表达式是( B ) A.*(p--) B. *(--p) C.*(p++) D.*(++p) 69. 有以下函数   char *fun(char *p)   {    return p;   }    该函数的返回值是( B ) A. 无确切的值 B. 形参p中存放的地址值 C. 形参p自身的地址值 D. 编译有错 70. 在下面的引用定义中,正确的是( B )。   A. int x,&y; y=x; B. int x,&y=x ;   C. int &y=x,x; D. float z; int x,y=&z; 71.执行下面程序段后,a的值为( C )。   int a,b;   for(b=1,a=1;b<=20;b++)   {    if(a>=10) break;    if (a%2==1)    { a+=5; continue;}    a-=3;    } A. 2 B. 6 C. 10 D. 8 72. 执行下列程序段后,变量i的值为( B )。 #define MA(x,y) ((x)*(y)) int i=5; i=MA(i,i+1)-7;    A. 30 B. 23 C. 19 D. 1 73.若有以下的说明: struct person {char name[20]; int age; char sex; }a={"li ning",20,m},*p=&a; 则对字符串li ning的引用方式不可以是( B ) A. (*p).name B. p.name C. a.name D. p->name 74. 若程序中定义了以下函数 double myadd(double a,double b) { return (a+b) ;}   并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说 明是( A )   A. double myadd(double a,b) ;   B. double myadd(double,double);   C. double myadd(double b,double a) ;   D. double myadd(double x,double y); 75.若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是( C )   int t[3][3],*pt[3],k; for(k=0;k<3;k++) pt[k]=&t[k][0]; A. t[2][0] B. t[2][2] C. t[1][2] D. t[2][1] 76.在C语言中,080是( D ) A.八进制数 B.十进制数 C.十六进制数 D.非法数 77. 整型变量i定义后赋初值的结果是( B )。   int i=2.8*6 ;   A.12 B.16 C.17 D.18 78.for(i=0,x=0; !x&&i<=3;i++)循环的次数为( A )   A.4 B.5 C.1 D. 无限循环 79.若有如下程序段:   { int a=2,b=-1,c=2;    if (a0; D. i++ ; 82.以下不能对二维数组a 进行正确初始化的语句是( C ) A.int a[2][3]={0}; B.int a[ ][3]={{1,2},{0}}; C.int a[2][3]={{1,2},{3,4},{5,6}}; D.int a[ ][3]={1,2,3,4,5,6}; 83.以下合法的if语句是( D )。 A. if(a=b) c++; C. if(a=>b) c++; D. if(a==b) c++; 84.字符串常量“I love china”在内存中存在需要( C )字节。注:每个单词之间 有一个空格。 A.10 B.12 C. 13 D. 14 二. 填空题 1.C语言源程序的扩展名为.c,可执行文件的扩展名为_______________。.exe 2.数组 int a[3][5];共定义了______个数组元素。15 3.C程序由函数构成,C程序总是从_______开始执行.main() 4. C语言中,用__________ 关键字来包含如stdio.h之类的头文件。 include 5.函数的返回值是通过函数中的________________语句来获得的。return 6.至少执行一次循环体的循环语句是 。do—while 语句 7.对于不带返回值的函数,应当用关键字______________定义函数。void 8.多分支结构的程序,通常选用_________语句来实现。 switch 9.若char ch[]="25yi6"有以下语句,则编译后分配给数组ch的内存占用的字节数为 ________。6 10.下面运算符 < , ++ = 按照优先级从高到低排列顺序为__ _。++ < = , 11.若char str[8]={“tony”};int k=strlen(str);则k的值为____________。4 12.______________是声明结构体类型的关键字。struct 13.int a[3][4]={{7,5},{5,8},{0,6,9,3}};则编译后a[1][2]= __________。0 14.静态局部变量应该用关键字____________来进行声明。static 15.用数组名作为函数调用的实参,则传递给形参的是____ _。数组的首地址 16.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一
展开阅读全文
相关搜索
温馨提示:
taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

当前位置:首页 > 教育专区 > 教案示例


本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁