20春学期《高级语言程序设计基础》在线平时作业1
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.若k为整型变量,则以下for循环的执行次数是( )。 for (k=2; k==0; ) printf(“%d”,k–);
A.无限次
B.2次
C.1次
D.0次
2.以下程序的运行结果是( )。 # include “stdio.h” main() { struct date { int y,m,d;} today; printf(“%d\n”, sizeof(struct date));}
A.出错
B.6
C.3
D.2
3.若a和b均为int型变量,则执行以下程序断后x的输出是( )。 x=15;y=15;printf(“%d\n”,x%=(y%=2));
A.6
B.12
C.1
D.0
4.当正常执行了文件关闭操作时,fclose函数的返回值是( )。
A.随机值
B.1
C.0
D.-1
5.在C语言中,错误的int类型的常数是( )。
A.37
B.32768
C.0xAF
D.0
6.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.数组元素x[5]的地址
F.数组元素x[5]的值
7.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.num%2
C.!(num%2==0)
D.!(num%2)
8.语句while (!y)中的表达式 !y 等价于( )。
A.y==1
B.y==0
C.y!=1
D.y!=0
9.下面程序的输出结果为( )。 main( ) { int a=1,b=0; switch(a) { case 1: switch (b) { case 0: printf(“**0**”); break; case 1: printf(“**1**”); break; } case 2: printf(“**2**”); break; }}
A.有语法错误
B.**0****2**
C.**0****1****2**
D.**0**
10.以下判断正确的是( )。
A.char str[10]={“string”}; 等价于char str[10]; str={“string”};
B.char str[10]={“string”}; 等价于char str[10]; *str={“strint”};”
C.char *s=”string”; 等价于char *s; s=”string”;
D.char *s=”string”; 等价于char *s; *s=”string”;
11.设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是( )。 scanf(“%4d+%3d+%2d+%1d”,&a,&b,&c,&d);printf(“%4d+%3d+%2d+%1d”,a, b, c, d);
A.1234123412341234
B.1234123121
C.1234+1234+1234+1234
D.1234+123+12+1
12.若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。 b=(a=10,a+5,c=10); printf(“a=%d,b=%d,c=%d\n”,a,b,c); c=(a=10,b=5,a+b);printf(“a=%d,b=%d,c=%d\n”,a,b,c);
A.a=10,b=15,c=10a=10,b=5,c=10
B.a=10,b=10,c=10a=10,b=5,c=5
C.a=10,b=10,c=10a=10,b=5,c=15
D.a=10,b=10,c=10a=10,b=5,c=10
13.以下不正确的定义语句是( )。
A.int y[5]={0,1,3,5,7,9};
B.double x[5]={2.0,4,0,6,0,8,0,10.0};
C.char c2[]={‘\x10′,’\xa’,’\x8′};”
D.char c1[]={‘1′,’2′,’3′,’4′,’5’};
14.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
A.a[1]+3
B.*(a[1]+2)
C.*(a+1)
D.a[0][0]
15.以下有关宏替换的叙述不正确的是( )。
A.宏替换只是字符替换
B.宏替换不占用运行时间
C.宏名必须用大写字母表示
D.宏名不具有类型
16.若有以下程序段: for (m=1; m<=100; m++) { scanf(“%d”, &y); if (y<0) continue; printf(“%3d”, m); }正确的描述是( )。
A.最多允许输出100个非负整数
B.当y<0时整个循环结束
C.y>=0时什么也不输出
D.printf函数永远也不执行
17.以下对指针变量的操作中,不正确的是( )。
A.int *p, *q; q=p=NULL;
B.int p, *q; q=&p;
C.int a=5, *p; *p=a;
D.int a=5, *p=&a, *q=&a; *p=*q;”
18.下列关于C语言的叙述错误的是( )。
A.大写字母和小写字母的意义相同
B.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
C.同一个运算符号在不同的场合可以有不同的含义
D.不同类型的变量可以在一个表达式中
19.在C语言中,一维数组的定义方式为:类型说明符 数组名( )。
A.[整型表达式]
B.[整型常量或整型表达式]
C.[整型常量]
D.[常量表达式]
20.若要使指针变量p指向一个动态开辟的字符型存储单元,则空中应选择填入的是( )。 char *p;p= malloc(sizeof(char));
A.(char *)
B.(*char)
C.char *
D.char