湖北科技学院2013学年春季学期2012级非计算机本科专业
《高级语言程序设计(C语言)》期末考试试卷(A卷、闭卷)
一.选择题:(每小题1分,共40分)
1.C语言规定,必须用( )作为主函数名。
A) Function B) include C) main D) stdio
2.下列说法正确的是( )。
A) 在执行C程序时不是从main 函数开始的
B) C程序书写格式严格限制,一行内必须写一个语句
C) C程序书写格式自由,一个语句可以分写在多行上
D) C程序书写格式严格限制,一行内必须写一个语句,并要有行号
3.下列字符串是用户标识符的是( )。
A) _HJ B) 9_student C) long D) float
4.下列数据中是合法的整型常量的是( )。
A) 3E2 B) 029 C) -32768 D) 6e+007
5.语句int k,i=3;k=(i++)+(i++)+(i++);执行过后k和i的值分别为( )。
A) 9,6 B) 12,5 C) 18,6 D) 15,5
6.10+’a’+1.5-567.345/’b’的结果是( )型数据。
A) long B) double C) int D) unsigned float
7.在C 语言中,下列类型属于构造类型的是( )。
A) 整型 B) 指针类型 C) 实型 D) 结构体类型
8.在C语言中,退格符是( )。
A) \n B) \t C) \v D) \b
9.下列符号中,可以作为变量名的是 ( )
A) +c B) *X C) _DAY D) next-day
10.以下程序的输出结果是( )
void main()
float型{ unsigned char a=2,b=4,c=5,d;
d=a|b; d&=c;
printf("%d\n",d); }
A) 3 B) 4 C) 5 D) 6
11.若已知a=5,b=10,则表达式a==b的值为( )。
A) 10 B) 20 C) 1 D) 0
12.已有定义” int a=-2; ”和输出语句 ” printf( “%8x”, a );“,以下正确的叙述是( )。
A) 整型变量的输出形式只有%d一种
B) %x是格式控制符的一种,它可以适用于任何一种类型的数据
C) %x是格式控制符的一种,其变量的值按十六进制输出,但%8x是错误的
D) %8x不是错误的格式控制符,其中数字8规定了输出数据的宽度
13. 在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个( )。
A) 函数 B) 文件 C) 变量 D) 子程序
14.语句
int x=10, y=20, z=30;
if (x>y) z=x; x=y; y=z; 执行后x、y、z的值是( )。
A) x=10,y=20,z=30 B) x=20,y=30,z=30
C) x=20,y=30,z=10 D) x=20,y=30,z=20
15.在C的if语句中,可用作条件的表达式是( )。
A) 关系表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式
16.以下for循环是( )。
for(a=0,b=0;( b!=123)&&(a<=4);a++ )
A) 无限循环 B) 循环次数不定 C) 执行4次 D) 执行5次
17.以下程序段( )。
x= -1; do { x=x * x; } while( !x );
A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误
18.程序段如下
int k=0; while( k++<=2 ) printf ( "%d\n", k );
则执行结果是( )。
A) 1 B) 2 C) 0 D)无结果
2 3 1
3 4 2
19.以下能正确计算1×2×3×…×10的程序段是( )。
A) do {i=1;s=1; s=s*i; i++; } while(i<=10);
B) do {i=1;s=0; s=s*i; i++; } while(i<=10);
C) i=1; s=1; do {s=s*i; i++; } while(i<=10);
D) i=1; s=0; do {s=s*i; i++; } while(i<=10);
20.若有定义:int a[10]; ,则数组a元素的正确引用是( )。
A) a [10] B) [3.5] C) a(5) D) a [10-10]
21.设有char str[10],下列语句正确的是( )。
A) scanf("%s",&str); B) printf("%c",str); C) printf("%s",str[0]); D) printf("%s",str);
22.若有如下定义: int a[3][3]={ {1,2,9},{3,4,8},{5,6,7} }, i , s=0 ; 则下列语句的输出结果是( )。
for ( i=0; i<3; i++) s+=a[ i ] [ i ]+a[ i ][ 3-i-1 ]; printf( “%d\n”,s );
A) 30 B) 18 C) 10 D) 12
23. 判断字符串s1是否大于字符串s2,应当使用( )。
A) if (s1>s2) B) if (strcmp(s1,s2))
C) if (strcmp(s2,s1)>0) D) if (strcmp(s1,s2)>0)
24.若用数组名作为函数调用的实参,传递给形参的是( )。
A) 数组的首地址 B) 数组第一个元素的值
C) 数组中全部元素的值 D) 数组元素的个数
25.有如下函数调用语句
func ( rec1,rec2+rec3,( rec4,rec5 )); 该函数调用语句中,含有的实参个数是( )。
A) 3 B) 4 C) 5 D) 2
26.在一个源文件中定义的外部变量的作用域为 ( )。
A) 本文件的全部范围 B) 本程序的全部范围
C) 本函数的全部范围 D) 从定义该变量的位置开始至本文件结束
27.以下函数值的类型是( )。
fun ( float x )
{ float y;
y= 3*x-4;
return y; }
A) int B) 不确定 C) void D) float
28.C语言中函数返回值的类型由( )决定。
A) return语句中表达式类型 B) 调用函数的主调函数类型
C) 调用函数时的临时类型 D) 定义函数时所指定的函数类型
29. 以下程序的输出结果是( )。
# define A 3
# define B(a) ((A+1)*a)
main( )
{ int x; x=3*(A+B(7)); printf ( “x=%4d\n”, x ); }
A) 93 B) 135 C) 54 D) 251
30. 下面程序的输出结果是:( )。
int m=13;
int fun( int x, int y )
{ int m=3;
return( x*y-m); }
main( )
{int a=7,b=5;
printf(“%d\n”, fun(a,b)/m); }
A) 1 B) 2 C) 7 D) 10
31.若有以下定义和语句,则输出结果是( )。
int **pp, *p, a=10,b=20;
pp=&p; p=&a; p=&b; printf( "%d,%d\n",*p, **pp );
A) 10,20 B) 10,10 C) 20,10 D) 20,20
32.下面程序段的运行结果是( )。
char str[ ]=“ABC”, *p= str ;
printf ( “%c\n”,*(p+1) );
A) 66 B) B C) 字符‘B’的地址 D) 字符”BC”
33.以下程序的输出结果是( )。
#include <stdio.h>
void main(void)
{ char a[ ] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, *p = a+5;
printf ( “%d”, *--p ); }
A) 非法 B) a[4]的地址 C) 3 D) 5
34.若有以下定义:int a[10],*p=a; 则﹡(p+5)表示( )。
A)元素a[5]的地址 B)元素a[5]的值
C)元素a[6]的地址 D)元素a[6]的值
35.在说明一个结构体变量时系统分配给它的存储空间是( )。
A) 该结构体中第一个成员所需存储空间
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论