上海电机学院 2010–2011学年第1学期
(03303043) 《高级语言程序设计》(上)期末考试试卷
  A    开课学院:  电子信息学院        出卷教师:  吉顺如   
  考试形式:闭卷  考试时间  90  分钟  上机考 
考生姓名:        赵君阳      学号:  19              班级:    BQ0902       
题序
总 分
得分
评卷人
、选择题(共20分,每小题1分)
1.在一个C语言程序中下列说明正确的是                          (    B  )
A)main()函数必须出现在所有函数之前  B)main()函数可以在任何地方出现
C)main()函数必须出现在所有函数之后  D)main()函数必须出现在固定位置
2.二进制语言是属于(A )
    A)面向机器语言    B)面向问题语言    C)面向过程语言    D)面向汇编语言
3. 下列符号串中,属于C语言合法标识符的是(  A )
A) float  B)sum one  C)2max    D)max2
4.以下选项中合法的C语言字符常量是( C  )
A) \092 '    B) "x"    C) \xAB    D) xy     
5.若有以下程序段,则变量c的二进制值是(  A  )
  int a=6,b=3,c;
  c=a^b<<2;
A)00011011    B) 00001010  C)00011000  D)00000110
6.要输入实数,用格式字符(  C  )。
A)%d      B)%c      C)%f      D)%s
7.putchar( )函数可以向终端输出一个(  D  )
A)整型变量表达式  B)实型变量值  C)字符串  D)字符或字符型变量
8. 若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句: scanf(“x=%d, y=%f”,&x,&y,); 时,正确的键盘输入是 (  A    )
A) 55 55.5↙    B)x=55, y=55.5↙    C)55↙55.5↙    D)x=55↙y=55.5↙
9.设x,yzint型变量,x=1,y=2,z=3,则下面表达式中值为0的是(  D  )
A) x&&y    B) x<=y    C) x||y+z&&y-z      D) !((x<y)&&!z||1)
10.为了避免嵌套的if-else语句的二义性,c语言规定else总是与( C  )组成配对关系。
A)缩排位置相同的if            B)在其之前末配对的if
C)在其之前未配对的最近的if    D)同一行上的if
11.以下叙述中正确的是(  C    )
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要有输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
12. 要把高级语言编写的源程序转换为目标程序需要使用 (  D      )
A编辑程序     B驱动程序    C诊断程序     D编译程序
13.程序段:int num=0; while(num<=2)  printf(“%d ,”,num++);的循环执行的次数(  C)
A)1次  B) 2次    C) 3次    D)4次
14. C语言中whiledo-while循环的主要区别是(  A    )
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
15. 以下不正确的描述是(  B )
A)break语句不能用于循环语句和switch语句外的任何其它语句
B)在switch语句中使用break语句或continue语句的作用相同
C)在循环语句中使用continue语句结束本次循环,但不会终止整个循环
D)在循环语句中使用break语句是会跳出循环体,提前结束循环
16. 执行下列语句序列后,不可能出现的运行结果是(    D      )
int  n;
scanf( “%d”, &n);
switch ( n )
{
case 1:
case 2:  putchar('X');
case 3:
case 4:  putchar('Y'); break;
default:  putchar('Z');
}  
A) 显示:X    B)显示:Y    C) 显示:Z    D)显示:XY
16.若有以下的数组定义:char a[ ]="abcd";  char b[ ]={'a','b','c','d','e'};
则正确的描述是                                         (  B    )
A) aswitch语句必须使用break吗数组和b数组长度相同        B) a数组长度大于b数组长度
C) a数组长度小于b数组长度      D) 两个数组中存放相同的内容
17.若有定义:char str1[30],str2[30];则输出较大字符串的正确语句是:C   )
A) if(strcmp(strl,str2))  printf("%s",strl);
B) if(strl>str2)  printf("%s",strl);
C) if(strcmp(strl,str2)>0)  printf("%s",strl);
D) if( strcmp(strl)>strcmp(str2)) printf("%s",strl);
18假设有定义int i,t[][3]={1,2,3,4,5,6,7,8,9}; 执行语句for (i=0;i<3;i++) printf("%d",t[2-i][i]);后的输出结果是( C     
A ) 357      B ) 753    C) 369    D) 951   
19.若变量已正确定义, 且x的值是1, y的值是2, z的值是4,计算表达式 (x=y= =z ) 后各变量的值为(    C    )
A)x=0,y=2,z=4  B) x=1,y=4,z=4  C)x=4,y=4,z=4  D)D. x=1,y=2,z=4
20.设有数组定义:char array[]=”China”; 则数组所占的空间是          (  B  )
A4个字节      B5个字节      C6个字节        D7个字节
、填空题(共20分,每空格1分)
1.C程序是由函数构成的。其中有并且只能有  1  个主函数。一个函数由两部分组成:函数的首部和      函数体       
2.若x和n均是int型变量,且x的初值为26,n的初值为7,则计算表达式x%=(n%=4)后,变量x的值为       
3.表达式 2.5 + 10/4= 4.5    若定义int a=4,b;则表达式(b=6*5,a*4),a+16的值是__30,16,32____     
4.十进制数89,转换为二进制数为      1011001  ,转换为十六进制数为    59         
5.假设有定义a=b=c=d=m=n=4。则执行表达式 (ma>b)&&(nc>d)后,n的值为     
6.a=3,b=2,c=1时,表达式x=a>b>=c的值是    3   
7.若有定义int a=15,b=7,c;则执行c=(a%b<1)||(a/b>1);c的值为      4   
8.能判断x是数字字符的C语言表达式是              char c[]             
9.若有定义int w=5,x=2,y=6,z=4;则条件表达式w<x?w: (y<z?y:z)的值是  4   
10.将数学式转换成C语言表达式  cos(sqrt(x*x))/(a+b)                   
11.若有定义:double a[3][5];则a数组中列下标的上限为  3  
12有如下语句:char a[ ]={”How are you!”}; sizeof(a)=        ,strlen(a))=    12           
13.二维数组A[4][5]={{2,2,4},{4,6,5,6},{0}};中元素A[1][1]的值是         
14.若有定义:char p[20]={'a','b','c','d'},r[]="xyz";则执行语句strcat(p,r);printf("%s\n",p);后的输出结果是               
15. 在C语言中,标识符只能由字母、数字和下划线字符组成,并且第一个字符不能是___数字_____  字符。
16. 定义 int b=7; float a=5.2, c=6.9; 则表达式 b*(int)(a+c)/2 的值为__42_______
三、程序改错题(共18分,每小题6分)
1、下列程序从键盘输入一个数n,求1~n之和并输出。请纠正程序中存在错误,使程序实现其功能。
如输入 5
输出:The sum from 1 to 5 is 15
#include <stdio.h>
main()
  {
    int i=1,n;
float sum;
      scanf(“%d”, n);
for(i<n;i++);
        sum+=i;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。