收藏 分销(赏)

公务员-计算机类C语言程序设计.doc

上传人:二*** 文档编号:4512794 上传时间:2024-09-26 格式:DOC 页数:18 大小:82KB
下载 相关 举报
公务员-计算机类C语言程序设计.doc_第1页
第1页 / 共18页
本文档共18页,全文阅读请下载到手机保存,查看更方便
资源描述
. . ?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<'a'&&!y) 的值是 〔 C 〕 A) 0 B) 语法错 C) 1 D) "假" 17. 以下关于单目运算符++、--的表达中正确的选项是〔 B 〕    A) 它们的运算对象可以是任何变量和常量    B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量    C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量    D) 它们的运算对象可以是char型变量、int型变量和float型变量 18.下面的程序( B ) void main() { int x=3; do { printf(“%d\n〞,x-=2); } while(!(--x)); } A). 输出的是1 B). 输出的是1和-2   C). 输出的是3和0 D). 是死循环 19.如下程序:   void main( )   { int a=6; printf(“%d\n〞,(a+=3,2*a)); } 执行后,输出结果是( D )   A) 9 B) 6 C) 2 D) 18 20.假设有以下说明和语句,请选出哪个是对C数组元素的正确引用( D ) int c[4][5], (*cp)[5]; cp=c; A). cp+1 B). *(cp+3) C). *(cp+1)+3 D). *(*cp+2) 21.下面程序的输出是( B ) main() { int x=023; printf("%d\n", --x); } A). 17 B). 18 C). 23 D). 24 22.执行以下程序的结果是( B ) main() { float x=1,y; y=++x*++x; printf(“%f\n〞,y); } A). 9.000000 B). 6.000000 C). 1.000000 D). 程序有错误 23.下面程序的输出是( A ) main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a; printf("%d\n", *(p+2) ); } A). 3 B). 4 C). 1 D). 2 24.执行下面程序中的输出语句后,a的值是( B ) main() { int a;   printf("%d\n", (a=3*5,a*4,a+5) ); } A). 65 B). 20 C). 15 D). 10 25.下面程序的输出是( C ) main() { int a=-1, b=4, k; k=(a++<=0)&&(!(b--<=0));   printf("%d %d %d \n", k, a, b ); } A). 0 0 3 B). 0 1 2 C). 1 0 3 D). 1 1 2 26.设有如下的程序段: char str[]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后,*(ptr+5)的值为( C ) A). '0' B). '\0' C). 不确定的值 D). '0'的地址 27.在宏定义# define PI 3.14159中,用宏名PI代替一个( C ) A).单精度数 B).双精度数 C).常量 D).字符串 28.假设i是整型变量,pb是根本型为整型的指针变量,那么正确的赋值表达式是〔 A 〕 A). pb=&i B). pb=i C). *pb=&i D). *pb=*i 29. 有以下程序段 int m=0,n=0; char c=’d’; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n);    假设从键盘上输入:6D6<回车>,那么输出结果是〔 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 <string.h>    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;x<y;x++,y--) { c=s[y];s[y]=s[x];s[x]=c; } } A). ihgfedcba B). abcdefghi C). abcdedcba D).ihgfefghi 41.void main( ) {int i,a[]={5,6,9,11}; for (i=0;i<4;i++) { if (a[i]%2==0) continue; printf("%d ",a[i]);      }    }    执行后输出结果是( C ) A) 编译出错 B 6 C) 5 9 11 D) 5 6 9 11 42.以下对数组的定义正确的选项是( D )   A〕 int x(10); B〕 int x[5]={0,1,2,3,4,5};   C〕 int n=10; x[n]; D〕 int x[ ]= {0,1,2,3,4}; 43. 以下表达中不正确的选项是( B )   A〕switch是多分支构造语句   B) continue语句的作用是使程序的执行流程跳出包含它的所有循环   C) break 语句只能用在循环体内和switch语句体内   D〕 在循环体内使用break语句和continue语句的作用不一样 44.如下程序: void main( ) { int i=1,j=2,k=3; if((j++|| k++)&&i++) printf("%d,%d,%d\n",i,j,k); }    执行后输出结果是( D )   A) 1,2,3 B) 2,2,4 C) 2,3,4 D) 2,3,3 45.以下表达中,不正确的选项是( C )   A〕 算法应该具有有穷性、确定性以及有效性等特点   B) 算法可以用传统流程图、N-S流程图以及伪代码等形式来描述   C) 根本构造只有顺序、选择、循环3种构造   D〕 构造化程序设计的思想是自顶向下、逐步细化、模块化设计以及构造化编码 46.在C语言中,函数返回值的类型最终取决于( D )   A) 函数定义时形参的类型 B)return语句中表达式值的类型   C) 调用函数时主函数所传递的实参类型 D)函数定义时在函数首部所说明的函数类型 47. 以下程序的输出结果是( C ) void main() {int i; for(i='a';i<'i';i++,i++) printf("%c",i-32); printf("\n"); } A) 编译不通过,无输出 B) aceg C) ACEG D) ABCDEFGI 48.假设有以下的说明: 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 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<b)    if(b!=15)    if(!ok1)    x=1;    else    if(ok2) x=10; x=-1;   printf("%d \n", x ); } A). -1 B). 0 C). 1 D). 不确定的值 51.假设有以下定义: int a[ ]={1,2,3,4,5,6,7,8,9,10}, *p=a; 那么值为3的表达式是〔 A 〕 A). p+=2,*(p++) B). p+=2,*++p C). p+=3,*p++ D). p+=2, ++*p 52.下面程序的输出是( A ) int aa[3][3]={ {2},{4},{6} }; void main()   {int i, *p=&aa[0][0]; for(i=0;i<2;i++) { if(i==0)    aa[i][i+1]= *p+1; else ++p; printf("%d", *p ); } } A). 23 B). 26 C). 33 D). 36 53.下面程序的输出是( D ) void prtv(int *x)  { printf("%d\n", ++*x ); } void main() { int a=25; prtv(&a); } A. 23 B. 24 C. 25 D. 26 54. 以下程序的运行结果是( B ) void main( ) {char a[10]={'1','2','3','4','5','6','7','8','9','\0'}; char *p; int i=8; p=a+i; printf("%s\n",p-2); } A) 6 B) 789 C) '6' D) 678 55.执行以下3条语句之后,那么k的值是____C___ int x=4,y=7 ; x++ ;y+=2 ;k=y%x; A〕 1 B〕 2 C〕4 D〕3 56.以下程序段 for ( k = 0, m = 4; m ; m - = 2 ) for( n = 1; n< 4 ; n++) k++; 循环体语句〞 k ++;〞 执行的次数是______C________ A〕16 B〕12 C〕 6 D〕 8 57.在C语言中(以16位PC机为例),5种根本数据类型的存储空间长度的排列顺序为〔 C 〕 A) char=int<1ong int<=float<double B) char< int <1ong int=float=double C) char<int <1ong int<=float<double D) char=int =1ong int<=float<double 58.字母A的ASCII码为十进制数65,且c2为字符型,那么执行语句c2='d'十'1'一'3';后,c2 中的值为〔 A 〕 A)b B) 68 C) 不确定的值 D) f 59.表达式18/4*sqrt(4.0)/8值的数据类型为: 〔 C 〕 A) int B)float C)double D)不确定 60.能正确表示"当x 的取值在[1,10]和[50,60]X围内为真,否那么为假"的表达式是〔 C 〕。 A) (x>=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 <string.h>  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 (a<b)    if (b<0) c=0;    else c+=1;    cout<<〞c=〞<<c<<endl;   }   执行后输出结果是〔 A 〕    A.2 B.1 C. 3 D. 0 80.以下符号能用作C++标识符是的〔 D 〕。    A. xyz/2 B. 2xsale C. x-sale D. x_sale 81.以下非法的赋值语句是〔 B 〕。 A. n=(i=2,i++); B. ++(i+1); C.x=j>0; 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++; B. 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.______________是声明构造
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服