收藏 分销(赏)

《高级语言程序设计》复习题及答案.doc

上传人:快乐****生活 文档编号:4373965 上传时间:2024-09-14 格式:DOC 页数:27 大小:132.50KB 下载积分:10 金币
下载 相关 举报
《高级语言程序设计》复习题及答案.doc_第1页
第1页 / 共27页
《高级语言程序设计》复习题及答案.doc_第2页
第2页 / 共27页


点击查看更多>>
资源描述
一、选择题 1、以下叙述正确得就是(  ): A) 在C程序中,main函数必须位于程序得最前面 B) C程序得每行只能写一条语句 C) C语言使用库函数实现输入输出操作 D) 注释中得拼写错误会影响编译结果 2、以下说法中正确得就是() A) C语言程序总就是从第一个得函数开始执行 B) C语言程序总就是从main()函数开始执行  C)在C语言程序中,要调用得函数必须在main()函数中定义 D) C语言程序中得main()函数必须放在程序得开始部分 3、下列选项种说法正确得就是( ) A) 函数由声明部分与执行部分两部分组成 B)语言中main函数一定在程序得开始部分 C)C语言程序总就是从第一个定义得函数开始执行 D)C程序得每行中只能写一条语句 4、设有说明:int a; float b; char c; double d; 则表达式1、3*a+2*b*c+d*(int)2、6 值得类型为(    )。 A) double B) char   C) float   D)  int 5、 C语言得标识符只能由字母、数字与下划线三种字符组成,且第一个字符( ) A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以就是字母、数字与下划线中任一种字符 6、以下不正确得C语言标识符就是( )。   A) ABC   B) abc C) a_bc    D) void 7、下列运算符中优先级最高得就是(     ) A)  〈 B)+     C)&&      D)!= 8、以下选项中属于C语言中合法关键字得就是(       ) A)Float   B)abc   C)int    D)CASE 9、 若x、i、j与k都就是int型变量,计算下面表达式后,x得值为(    ) x=(i=4,j=16,k=32) A)4  B)16   C)32   D)52 10、在C语言中,要求数据必须就是整型得运算符就是(   ) A)/     B)+ +    C)!=  D) % 11、若整型变量x得值为8,则下列表达式中值为1得表达式就是 A)x+=x-=x   B) x%=x-1    C) x%=x%=3    D) x/=x+x 12、若w=1,x=2,y=3,z=4,则条件表达式“w 〉 x ? w : y < z ? y : z”得值就是( ) A)4      B)3       C)2      D)1 13、有以下程序,程序运行后得输出结果就是。 main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k); } A)1 2 3    B)2 3 4   C)2 2 3  D)2 3 3 14、下面程序得输出结果就是 main() {int x=2,y=-1,z=2; if(x<y) if(y〈0)z=0; else z=-1+x; printf(“%d\n”z); } A) 3 B) 2 C) 1  D)0 15、执行下列语句后,a得值为( ) main(  ) {int a=5; printf(“%d\n”,(a=3*5,a*4,a+5)); } A) 65    B)20 C) 15 D)10 16、下列程序段中,有错误得行就是() 列定行号 int x=0,y=10;   2   switch(x)   3         {case 3: 4     case –1:y=y-2;break;  5      case y+1:x+=5;   6        default:printf(“%d,%d”,x,y);} A) 4 B) 3 C) 5   D)无错误 17、若i为整型变量,则以下循环执行次数就是(   ). #include”stdio、h" void main() {   int i; ﻩfor(i=2;i==0; ) printf("%d",i-—); } A) 无限次  B)0次   C) 1次  D) 2 次 18、若有以下定义,double a[10];则a数组元素下标得上、下限分别为( ) A) 1,10     B) 0,9     C) 0,10    D)1,9 19、若已定义得函数有返回值,则以关于该函数调用得叙述中错误得就是() A) 调用可以作为独立得语句存在 B) 调用可以作为一个函数得实参 C) 调用可以出现在表达式中     D) 调用可以作为一个函数得形参  20、 定义如下变量与数组: int i;  int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句 for(i=0;i〈3;i++) printf("%d",x[i][2-i]); 输出结果就是 ( ) A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9 21、以下不能正确定义二维数组得选项就是 A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};  C) int a[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}};  22、若有以下定义:int a[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++得值就是 A) 10   B) 11 C) 20 D)21 23、函数得嵌套调用就是指 A) 直接调用本函数 B) 在定义函数时,又定义另一个函数 C) 间接调用本函数 D) 被调用函数又调用另一个函数 24、下列说法正确得就是 A) 被调用函数必须先调用,后声明 B) 用户自定义函数得类型若未指出,则系统默认为void C) 全局变量不能与局部变量同名 D) 实参可以就是任意表达式 25、以下描述正确得就是(  ) A)continue语句得作用,就是结束整个循环语句得执行 B)只能在循环体内与switch语句体内使用break语句 C)在循环体内使用break语句或continue语句得作用相同 D)多层循环嵌套中不可以使用break语句 26、若有说明语句:“int a[3][4];”,则对数组元素得正确引用格式就是(  ) A)a[2][4]   B) a[1,3]    C) a[1+1][0]   D) a(2)(1) 27、若有说明:“int  a[3][4]={0};",则下面正确得叙述就是(   ) A)只有元素a[0][0]可得到初值0 B)此数组说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 28、定义数组a与b得语句就是:   “char a[ ]=“ABCDEF”;  char b[ ]={‘A’,‘B',‘C’,‘D’,‘E’,‘F'};” 则以下叙述正确得就是(   ) A)a与b数组完全相同     B)a与b数组元素个数相同 C)a与b中都存放字符串    D)a数组比b数组元素个数多 29、语句“int (*ptr) ( );"得含义就是( ) A)ptr就是指向一维数组得指针变量 B)ptr就是指向int型数据得指针变量 C)ptr就是指向函数得指针,该函数返回一个int型数据 D)ptr就是一个函数名,该函数返回值就是指向int型数据得指针 30、若有定义:“int *p[4];",则标识符p 就是(  ) A)一个指向整型变量得指针 B)一个指针数组名 C)一个指针,它指向一个含有四个整型元素得一维数组 D)无效得数组名 31、在C语言中(   ) A) 函数定义可以嵌套,但函数调用不可以嵌套 B) 函数定义不可以嵌套,但函数调用可以嵌套 C) 函数定义与调用都可以嵌套 D) 函数定义与条用都不能嵌套 32、下面程序得输出结果就是(   ) #include <stdio、h〉 void main() { int i,j,x=0; for(i=0;i〈=2;i++)   { x++;     for(j=0;j〈=2;j++) { if(j%2)continue;         x ++;} x ++; } printf(”%d\n",x); } A)4      B)6     C)8   D)12 33、执行下列语句后,m得值为( )   int m=1,x=2,y=3,z=4;      m=m〈x?m:x;     m=m<y?m:y;      m=m<z?m:z: A) 1   B) 4 C) 2  D) 3 34、下列程序段就是实现给数组所有元素赋值操作,应在下划线上填入得就是(  ) int a[10]; for(i=0;i〈=9;i++) scanf(“%d”,    ); A) a    B) &a[i]  C) a[i] D) &a[0] 35、下列叙述正确得就是() A) do-while语句构成得循环不能用其它语句构成得循环来代替 B) do-while语句构成得循环只能用break语句退出 C) 用do-while语句构成得循环,在while后得表达式为非零时结束循环 D) 用do—while语句构成得循环,在while后得表达式为零时结束循环 36、下列程序得输出结果为() #include “stdio、h” 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, %d”, a, b); } A) 8,20  B) 8,22 C) 7,20 D) 7,22 37、设 int a[5]={10,15,20,25,30};   int *p; p=a+2;则表达式++*p得值为() A) 20 B) 15     C) 16    D) 21 38、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b得值分别为( ) (a=w〉x)&&(b=y〉z); A) 0与0 B) 5与0 C) 0与6    D) 5与6 39、下列语句得输出为(   ) int x=—1;  printf(“%d,%u,%o”,x,x,x); A) –1,—1,—1     B) –1,32767,-177777 C) –1,32768,177777   D) –1,65535,177777 40、下列函数调用语句中得实参个数为( ) fun((a+b,x,y),fun(x,(x+z))); A) 2    B) 3 C) 4   D) 5 41、设有数组定义:char array[ ]=”china”;则数组array所占得内存空间为(  ) A) 4个字节  B) 5个字节   C) 6个字节    D) 7个字节 42、以下程序段得运行结果就是(  )。   char c[5]={ ‘a’ , ’b’ , ‘\0‘ , ‘c’ , ‘\0’ } ;   printf( “%s” , c );  A)'a''b’  B)ab   C)ab c   D)a  b 43、若C程序中出现死循则违背了算法得( ) A)有效性     B)确定性   C)有穷性     D)有一个或多个输出 44、设 int a=20;则执行表达式:a/=a+a后,a得值就是( ) A)0   B)1    C)20  D)40 45、int x,y,z,m=5,n=5;则执行下面语句后得z值就是(     ) x=(——m==n++)?-—m:++n; y=m++; z=n; A)5       B)10     C)6       D)7 46、执行下列程序段后,i得正确结果就是(      ) int i=10; switch(i) { case 9:  i+=1; case 10: i++; case 11:  ++i;   default:i+=i; } printf( ”%d", i );   A)10   B)11       C)12       D)24 47、若有定义:int a[10];。则以下表达式中不能代表数组元素a[1]得地址得就是(  ) A)&a[0]++  B)&a[1] C)&a[0]+1 D)a+1 48、变量得指针,其含义就是指该变量得(    ) A)值   B)地址    C)变量名   D)一个标志 49、有以下函数定义: void fun(int n, double x)  { …… } 若以下选项中得变量都已正确定义并赋值,则对函数fun得正确调用语句就是(   ) A)fun(int y,double m); B)k=fun(10,12、5); C)fun(x,n);          D)void fun(n,x); 50、设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n得值就是( )。    A) 0         B) 1     C) 2      D) 3 51、若int  a, b; scanf(”%d%d”, &a, &b); 不可以用( )作为输入得分隔符. A) ,   B)空格     C)回车     D)TAB键 52、下面关于运算符优先顺序得描述中正确得就是: ( ) A)关系运算符〈 算术运算符〈 赋值运算符< 逻辑与运算符 B)逻辑 运算符< 关系运算符〈 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符〈 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符〈 逻辑与运算符 53、为了判断两个字符串s1与s2就是否相等,应当使用( )。 A) if(s1 == s2)    B) if(s1 = s2)     C) if(strcpy(s1,s2))    D)if(strcmp(s1,s2)==0) 54、以下对二维数组进行正确初始化得就是(  )。 A)int a[2][3]={{1,2},{3,4},{5,6}};   B)int a[][3]={1,2,3,4,5,6};   C)int a[2][]={1,2,3,4,5,6}; D)int a[2][]={{1,2},{3,4}}; 55、 若用数组名作为函数调用时得实参,则实际上传递给形参得就是(  )。 A)数组得首地址   ﻩ B) 数组得第一个元素值 C)数组中全部元素得值 D) 数组元素得个数 56、 以下错误得描述就是( )。 ﻩ ﻩﻩ A) 不同得函数中可以使用相同得变量名 B) 形式参数就是局部变量 C) 一个函数内部定义得变量只能在本函数范围内有效   D) 在一个函数内部得复合语句中定义得变量可以在本函数范围内有效 57、下列程序得运行结果就是( ) main(  ) {   int i=10;          int *p=&i;    i=8;      printf(“%d”,*p);    } A)10   B)8    C)程序错误,不能运行 D)结果不确定 58、C语言中,double类型得数据占字节数为(     ) A) 1  B) 2       C) 4        D) 8 59、可在C程序中用作用户标识符得一组标识符就是(      ) A)as_b3     _123   If B) For -abc  case C) 2c   DO SIG D) void   define WORD 60、以下字符中,不正确得C语言转义字符就是( ) A) ‘\\’ B) ‘\018' C) ‘\Xaa’   D) ‘\t’ 61、C语言中,数据在内存中都以( )形式存放 A) 原码    B) 反码    C) ASCll码    D)补码 62、下列运算符中,优先级最高得就是( ) A) &&  B) !   C) ++    D) || 63、有输入语句:scanf (“a=%d ,b=%d ,c=%d” ,&a,&b,&c) ;为使变量a 得值为11,b 为12,c为13,则从键盘输入数据得正确形式应当就是( )。 A)11 12 13       B)11, 12, 13 C)a=11 b=12 c=13      D) a=11, b=12, c=13 64、为表示关系 —1≤x≤1应使用得c语言表达式就是(    )   A) -1≤x≤1          B) —1=<x&&x=<1  C) -1=<x=<1        D) x〉=-1&&x〈=1 65、若有以下定义: double a; int b; float c; char d; 则表达式a*b/d+(d—c)值得类型为(    ) A) float  B) int     C) char D) double 66、下列程序输出得结果就是(    ) main() {int a=18;  a+=a—=a*a;  printf("%d”,a); } A) —612     B) 9   C) 0   D) 36 67、break语句( ) A) 只能出现在if语句中 B) 只能出现在循环体中 C) 可用在循环体与switch语句中 D) 可用在函数中得任何语句 68、如 int k=11;则执行语句k=1/3*++k;后k取值为(  ) A) 12 B) 3C) 4 D) 0 69、以下程序得输出结果就是(     ) main() { int x=12,y=012; printf(”%d %d\n”,x--,—-y); } A)12 9     B)11 11 C)11 12 D)12 11 70、 设 int x=1, y=5; 表达式(!x||y—-||++x)得值就是( ) A) 0   B) 1     C) 5         D) 4 71、如果k为整数,则while循环执行次数() k=10;  while(0) k=k-1; A) 一次都不执行 B) 1 C) 10    D) 无限次 72、 有以下程序(    ) fun(int a, int b) { if(a〉b) return b; else return b;  } main( ) { int x=3, y=8, z=6, r; r=fun (x, y+z); printf("%d\n”, r); 程序运行后得输出结果就是(    ) A) 3       B) 6    C) 8   D) 14 73、若有说明:int n=17,*p=&n,*q=p;,则以下非法得赋值语句就是(     ) A) p=q;     B) *p=*q;    C) n=*q;    D) p=n; 74、 以下程序得功能就是:按顺序读入10名学生4门课程得成绩,计算出每位学生得平均分并输出,程序如下:    main() {  int n,k;        float score ,sum,ave;        sum=0、0;     for(n=1;n<=10;n++)      {  for(k=1;k〈=4;k++)        {  scanf(“%f”,&score);  sum+=score;} ave=sum/4、0;      printf(“NO%d:%f\n”,n,ave);   }      }    上述程序运行后结果不正确,调试中发现有一条语句出现在程序中得位置不正确.这条语句就是( ) A) sum=0、0;      B)   sum+=score; C) ave=sun/4、0; D) printf(“NO%d:%f\n”,n,ave); 75、数组定义为char a[10]={‘a’,‘b’,‘c’};该数组包括得元素个数就是( ) A) 3     B) 9   C) 4  D)10 76、下面程序得输出结果就是(  ) main (  ) { int x = 2, y = —1,z = 2; if ( x 〈 y ) if ( y < 0 ) z = 0; else        z = -1+x++; printf ("%d\n", z++ );} A)  3    B)  2     C)  1  D)  0 77、有以下程序   main( ) {   int  a[ ]={0,1,2,3,4,5,6,7,8,9}, *p ; for(p=&a[9];p>=a;p-—)  printf(”%d,”,*p); } 程序运行后得输出结果就是( )                 A)0 1 2  3  4 5 6 7 8  9 B)2,3,4,5,6,7,8,9,10,1 C)0,1,2,3,4,5,6,7,8, 9, D)9,8,7,6,5,4,3,2,1, 0, 78、 执行循环语句: for(x=y=0;y!=250||x<4;x++)y+=50; 其循环体执行得次数为( ) A) 5  B) 4 C)3 D)2 79、如 int x=14; 下列求商y(需小数结果)得表达式哪一个不对(    ) A) y=x/(5+、0) B) y=x/5、 C) y=1、*x/5 D) y=x/5*1、0 80、设有以下程序段(  ) int x=0,s=0; while(!x!=0)s+=++x; printf(”%d",s);  则 :A)运行程序段后输出0           B)运行程序段后输出1 C)程序段中得控制表达式就是非法       D)程序无法运行 81、有以下程序,程序运行后得输出结果就是(   ) #include"stdio、h" void main() { int i=0,j=2,m=3,n;   n=i++<=1&&j〉=2&&m++; printf("%d,%d,%d,%d \n",i,j,m,n);  } A)2,2,4,1 B)2,2,3,1 C) 1,2,4,1   D)2,1,3,1 82、下面程序得输出结果就是( ) #include <stdio、h> void main() { int  i,x=1,y=0,a=0,b=0;    switch(x) ﻩ { case 1:b++;  case 2:a++;b++;break; case 3:a++;b++; } printf("%d,%d\n”,a,b); } A)2,1   B)2,2   C)1,2   D)4,2 二、程序分析及填空 1、C语言得基本数据类型中,有两种实数类型变量,一种就是float型,另一种就是( )型。 2、若程序中有语句“scanf(“a=%d,b=%d",&a,&b);”,在执行程序时,要输入3与5两个数,应该键入(     )。 3、包含数学类库函数得头文件名称就是(     )。 4、字符串“ab\034\\\x79”得长度为(      )。 5.数组元素作函数参数进行得就是   传递,数组名作函数参数进行得就是____传递. 6.设有函数调用语句f(x1,x1+x2,f1(x1,x2));则函数f()实参得数目有____个. 7.在数组 int score[10]={1,2,3,4,5,6}中,元素定义得个数有   个,其中score[8]得值为       . 8、C语言源程序文件得后缀就是       经过编译后,生成文件得后缀就是       ,经过连接后,生成文件得后缀就是   。 结构化程序由        、       、     三种基本结构组成。 9、C语言提供得三中逻辑运算符就是____________ 、____________、____________。 10、若a=1,b=4,c=3, 则表达式!(a<b)||!c&&1得值就是_______________ 。 11、在C语言中,若对函数类型未加说明,则函数得隐含类型为        类型. 12、在C语言中,唯一得一个三目运算符就是 。 13、以下程序运行后得输出结果就是____________。 #include <stdio、h> void main( ) { int m=5;    if (m++>5)printf(”%d\n”,m); else printf(”%d\n”,m-—);} 14、以下程序运行后得输出结果就是   。 #include 〈stdio、h> void main()  {  int x=15;     while(x>10 && x〈50)      { x++;   if(x/3){x++;break;}  else continue;   }   printf(”%d\n",x);} 15、下面程序得运行结果就是:   。 #include ”stdio、h”  void s *a,int *b)    { int *t;   t=a; a=b;  b=t; } void main() { int  x=3,y=5,*p=&x,*q=&y;      s);   printf("%d%d\n",*p,*q);   }  16、在执行以下程序时,如果从键盘上输入:AdEf<回车>,则输出为 ____________ #include"stdio、h” void main() {char ch; while ((ch=getchar())!='\n’) {if (ch>=’A’&&ch<=’Z')ch=ch+32;  else if (ch>='a'&&ch〈=’z')ch=ch-32;  printf(”%c",ch); } printf(”\n");} 17.设有以下宏定义,则执行赋值语句 a=PP*20;(a为int型变量)后,a得值就是       .    #define PR 100       #define PP PR+400 18、下列程序段得输出结果为       int x=10,y=1; y=y—-||x++; printf(“%d,%d”,(y,x++),y); 19、有以下程序 #include "stdio、h” void main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i〈4;i++)   s+=a[i][i]; printf(”%d\n",s); } 程序运行后得输出结果就是        程序得功能为           20、有以下程序    #include <stdio、h>    void main( )    { int p=2, t=1;     while(p<=5 )   t=t*p++; printf(”%d\n",t);} 该程序运行后变量p与t中得值分别为              。 21、有以下程序   #include 〈stdio、h〉     void main()     { int a,b,c=221; a=c/100%3; b=a&&—1; printf(“%d,%d",a++,b--); } 该程序运行后得输出结果就是           22、以下程序得输出结果为                        . #include 〈stdio、〉 main() { int a[ ]={1,2,3,4,5,6},*p=a;   *(p+3)+=2; printf(“%d,%d",*p,*(p+3)); }  23、以下程序得输出结果为        。 #include "stdio、h" int x1=40,x2=70; void main( ) { int x3=50,x4=60; int sub(int x3,int x4); printf("%d,%d\n",x1,x2); } void sub(int x,int y) {  x1=x; x2=y;} 24、下面C程序得输出就是:    main()   { int m=6;  if(m—-<6) printf(”%d\n",++m);    else printf("%d\n”,——m);     } 25、下面C程序得输出就是:           #include ”stdio、h" main()   { int a=5,*p=&a;    *p=a+*p; ﻩprintf ("a=%d\n",a);} 26、下面C程序得输出就是:   #include "stdio、h” void f(int n)ﻩ { printf("%3d",n%10); if(n〉0) f(n/10); } void main() { f(12);} 27、以下程序得输出结果就是:     #include ”stdio、h" void main()  { int y; for(y=6; y>0; y-—)  if(y%3==0)  { printf(”%d", --y); continue;} } 28、在数组 int  score[10]={1,2,3,6}中,score[7]得值为_______。 29、程序运行后得输出结果就是          #include "stdio、h" void main() { int a=1,b=2; printf(”%d",(a++,++b,(a++)+b));} 30、以下程序运行后得输出结果就是     #include 〈stdio、h〉 void main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); } 31、 以下程序运行后得输出结果就是             #include <stdio、h〉 main() { int a=5,b=7,c; printf(“%d\n”,c=a>b); } 32、 以下程序运行后得输出结果就是      #include ”stdio、h” main( ) { int i,j,k=0,m=0; for(i=0;i<2;i++)   { for(j=0;j<3;j++) k++; k—=j; ﻩ} m=i+j; printf(”k=%d,m=%d\n",k,m); } 33、 以下程序运行后得输出结果就是      #include "stdio、h" s  *p1, int *p2) {   int p;   p=*p1;   *p1=*p2;   *p2=p; } main() { int a=12,b=13;   int *pointer_1,*pointer_2;  pointer_1=&a;  pointer_2=&b;    if(a<b)s);   printf(”\n%d,%d\n”,a,b); } 34
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服