19秋学期《高级语言程序设计基础》在线平时作业1
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.下面对typedef的叙述中不正确的是( )。
A.用typedef可以定义新的数据类型
B.用typedef只是将已存在的类型用一个新的标识符来代表
C.用typedef不能定义变量名
D.使用typedef有利于程序的通用和移植
2.下面程序( )。(每行程序前的数字为行号) 1 main{} 2 { 3 float a[10]={0.0}; 4 int i; 5 for(i=0;i<3;i++) scanf(%d”,&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(“%f\n”,a[0]); 8 }
A.第7行有错误
B.第5行有错误
C.第3行有错误
D.没有错误
3.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.num%2
C.!(num%2==0)
D.!(num%2)
4.有两个字符数组a、b,则以下正确的输入语句是( )。
A.scanf(“%s%s”,a,b);
B.scanf(“%s%s”,&a,&b);
C.gets(a,b);
D.gets(“a”); gets(“b”);”
5.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
A.a[1]+3
B.*(a[1]+2)
C.*(a+1)
D.a[0][0]
6.以下能对二维数组a进行正确初始化的语句是( )。
A.int a[][3]={{1,2,3},{4,5,6}};
B.int a[][3]={{1,0,1},{},{1,1}};”
C.int a[2][4]={{1,2,3},{4,5},{6}};
D.int a[2][]={{1,0,1},{5,2,3}};
7.以下对指针变量的操作中,不正确的是( )。
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;”
8.在C语言中,一维数组的定义方式为:类型说明符 数组名( )。
A.[整型表达式]
B.[整型常量或整型表达式]
C.[整型常量]
D.[常量表达式]
9.在C语言中,整数-8在内存中的存储形式是( )。
A.1111 1111 1111 1000
B.1111 1111 1111 0111
C.1000 0000 0000 1000
D.0000 0000 0000 1000
10.函数调用语句:fseek(fp, 10L, 2);的含义是:将文件位置指针( )。
A.移动到距离文件头10个字节处
B.移到离当前位置10个字节处
C.从文件尾部前移10个字节
D.从当前位置向后移动10个字节
11.以下正确的函数说明是( )。
A.int fun(int a, b)
B.int fun(char a[ ][ ])
C.float fun(int a; int b)
D.double fun( )
12.若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( )。
A.*&p, *p, &a”
B.&a, p, &*p
C.a, p, &*a
D.*&a, &a, *p
13.当定义一个结构体变量时系统分配给它的内存是( )。
A.结构体成员中占内存量最大者所需的容量
B.结构体中各成员所需内存量的总和
C.结构中第一个成员所需的内存量
D.结构中最后一个成员所需的内存量
14.以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。
A.x=5,y=5,z=5;”
B.int x=y=z=5;
C.int x=5,y=5,z=5;
D.int x,y,z=5;
15.若有以下程序段: …… int a[]={4,0,2,3,1},i,j,t; for(i=1;i=0 && t>a[j]) { a[j+1]=a[j];j–;} a[j+1]=t; } …… 则该程序段的功能是( )。
A.对数组a进行选择排序(降序)
B.对数组a进行选择排序(升序)
C.对数组a进行插入排序(降序)
D.对数组a进行插入排序(升序)
16.若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。
A.数组a中的每个元素都可得到初值0
B.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
C.只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
D.二维数组a的第1维大小为1
17.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.long
B.int
C.float
D.double
18.若二维数组a有m列,则在a[i][j]前的元素个数为( )。
A.j*m+i
B.i*m+j-1
C.i*m+j+1
D.i*m+j
19.下面程序的输出结果为( )。 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**
20.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A.程序文件的最后
B.程序文件的开始
C.程序文件的任何位置
D.它所调用的函数的前面