东大21秋学期学期《高级语言程序设计基础》在线平时作业3[答案]答案
《高级语言程序设计基础》在线平时作业3
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.有下面的程序段 char a[3],b[]="China"; a=b; printf("%s",a); 则( )。
A.运行后将输出China
B.运行后将输出Ch
C.运行后将输出Chi
D.编译时出错
正确答案:-----
2.以下运算正确的程序段是( )。
A.char str1[]="ABCDE", str2[]="abcdef"; strcpy(str1, str2);
正确答案:-----
B.char str[10], *st="abcde"; strcat(str, st);
正确答案:-----
C.char *st1="ABCDS", *st2="abcde"; strcat(st1,st2);
正确答案:-----
D.char str[10]="", *st="abcde"; strcat(str, st);"
正确答案:-----
3.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.数组元素x[5]的地址
B.数组元素x[5]的值
C.数组元素x[6]的地址
D.数组元素x[6]的值
正确答案:-----
E.选项内容11
F.选项内容11
G.选项内容11
4.若有以下程序段: for (m=1; m<=100; m++) { scanf("%d", &y); if (y<0) continue; printf("%3d", m); }正确的描述是( )。
正确答案:-----
A.当y<0时整个循环结束
B.y>=0时什么也不输出
C.printf函数永远也不执行
D.最多允许输出100个非负整数
正确答案:-----
5.有字符数组a[80]和b[80],则正确的输出语句是( )。
A.puts(a.b);
B.printf("%s,%s",a[],b[]);
C.pitchar(a,b);
D.puts(a); puts(b);
正确答案:-----
6.若有说明:int a[][4]={0,0};则下面不正确的叙述是( )。
A.数组a中的每个元素都可得到初值0
B.二维数组a的第1维大小为1
C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D.只有数组元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
正确答案:-----
7.下面程序( )。(每行程序前的数字为行号) 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 ",a[0]); 8 }
正确答案:-----
A.没有错误
B.第3行有错误
C.第5行有错误
D.第7行有错误
正确答案:-----
8.当定义一个结构体变量时系统分配给它的内存是( )。
A.结构中第一个成员所需的内存量
B.结构中最后一个成员所需的内存量
C.结构体成员中占内存量最大者所需的容量
D.结构体中各成员所需内存量的总和
正确答案:-----
9.以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。
A.#define MUL(x,y) x*y
正确答案:-----
B.#define MUL(x,y) (x)*(y)
正确答案:-----
C.#define MUL(x,y) (x*y)
正确答案:-----
D.#define MUL(x,y) ((x)*(y))"
正确答案:-----
10.下面对typedef的叙述中不正确的是( )。
正确答案:-----
A.用typedef不能定义变量名
正确答案:-----
B.用typedef可以定义ABC数据类型
正确答案:-----
C.用typedef只是将已存在的类型用一个ABC标识符来代表
正确答案:-----
D.使用typedef有利于程序的通用和移植
正确答案:-----
11.若有以下程序段: …… 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进行选择排序(降序)
正确答案:-----
12.定义如下变量和数组:int k; int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf("%d",a[k][2-k]);
正确答案:-----
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
正确答案:-----
13.若执行fopen函数时发生错误,则函数的返回值是( )。
A.随机值
B.1
C.NULL
D.EOF
正确答案:-----
正确答案:-----
14.下面程序段的输出结果是( )。 int a=023;printf("%d ",--a);
正确答案:-----
A.23
B.17
C.21
D.24
正确答案:-----
15.下面程序的输出结果为( )。 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.**0**
B.**0****2**
C.**0****1****2**
D.有语法错误
正确答案:-----
16.以下对指针变量的操作中,不正确的是( )。
A.int p, *q; q=&p;
B.int *p, *q; q=p=NULL;
C.int a=5, *p; *p=a;
D.int a=5, *p=&a, *q=&a; *p=*q;"
正确答案:-----
17.以下判断正确的是( )。
A.char *s="string"; 等价于char *s; *s="string";
B.char str[10]={"string"}; 等价于char str[10]; str={"string"};
C.char *s="string"; 等价于char *s; s="string";
D.char str[10]={"string"}; 等价于char str[10]; *str={"strint"};"
正确答案:-----
21.下面程序的运行结果是( )。 main() { struct cmplx { int x; int y; } cm[2]={1,2,3,4}; printf("%d ", 2*cm[0].x+ cm[1].y/cm[0].y);}
正确答案:-----
A.5
B.2
C.3
D.4
正确答案:-----
19.若调用fputc函数输出字符成功,则函数的返回值是( )。
A.输出的字符
B.-1
C.0
D.EOF
20.C语言中字符型(char)数据在内存中的存储形式是( )。
A.原码
B.补码
C.反码
D.ASCII码
正确答案:-----
东大21秋学期学期《高级语言程序设计基础》在线平时作业3[答案]历年参考题目如下:
21春学期《高级语言程序设计基础X》在线平时作业3
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
A.i=x[1][1]
B.i=*(*(x+1))
C.i=*(*(x+1)+1)
D.i=*(x[1]+1)
2.下面程序段的运行结果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]);
A.空格
B.\0
C.e
D.f
3.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A.程序文件的开始
B.程序文件的最后
C.它所调用的函数的前面
D.程序文件的任何位置
4.若k为整型变量,则以下for循环的执行次数是( )。 for (k=2; k==0; ) printf("%d",k--);
A.无限次
B.0次
C.1次
D.2次
5.以下程序段中的do-while循环( )。 m=-1; do { m=m*m; }while(!m);
A.是死循环
B.执行二次
C.执行一次
D.有语法错误
6.若执行下述程序时从键盘输入3 4,则输出结果是( )。
#include main( ) { int a,b,s;
scanf("%d%d",&a,&b);
s=a; if (a<b) printf("%d ",s*s); s=b; }
A.186
B.256
C.324
D.400
7.设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( )。
A.Z
B.A
C.a
D.z
8.对两个数组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数组长
9.以下程序运行后,输出结果是( )。 #define ADD(x) x+x main( ) { int m=1, n=2, s=3; s*=ADD(m+n); printf("s=%d ", s); }
A.s=8
B.s=9
C.s=6
D.s=18
10.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.float
B.int
C.long
D.double
11.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.数组元素x[5]的地址
B.数组元素x[5]的值
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.选项内容11
F.选项内容11
12.若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( )。
A.a, p, &*a
B.*&a, &a, *p
C.&a, p, &*p
D.*&p, *p, &a"
13.设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.1234123121
B.1234123412341234
C.1234+1234+1234+1234
D.1234+123+12+1
14.以下对C语言中共用体类型数据的叙述正确的是( )。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不能同时存放其所有成员
D.共用体类型定义中不能出现结构体类型的成员
15.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.由用户指定传递方式
16.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是( )。
A.*pc[0]代表的是字符串"aaa
B.*pc[0]代表的是字符'a'
C.pc[0]代表的是字符串"aaa"
D.pc[0]代表的是字符'a'
17.若有说明:int a[3][4];则数组a中各元素( )。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
18.当定义一个结构体变量时系统分配给它的内存是( )。
A.结构中第一个成员所需的内存量
B.结构中最后一个成员所需的内存量
C.结构体成员中占内存量最大者所需的容量
D.结构体中各成员所需内存量的总和
19.在C语言中,错误的int类型的常数是( )。
A.32768
B.0
C.37
D.0xAF
20.当正常执行了文件关闭操作时,fclose函数的返回值是( )。
A.-1
B.随机值
C.0
D.1
21.以下运算正确的程序段是( )。
A.char str1[]="ABCDE", str2[]="abcdef"; strcpy(str1, str2);
B.char str[10], *st="abcde"; strcat(str, st);
C.char *st1="ABCDS", *st2="abcde"; strcat(st1,st2);
D.char str[10]="", *st="abcde"; strcat(str, st);"
22.以下对指针变量的操作中,不正确的是( )。
A.int p, *q; q=&p;
B.int *p, *q; q=p=NULL;
C.int a=5, *p; *p=a;
D.int a=5, *p=&a, *q=&a; *p=*q;"
23.语句while (!y)中的表达式 !y 等价于( )。
A.y==0
B.y!=1
C.y!=0
D.y==1
24.若要使指针变量p指向一个动态开辟的字符型存储单元,则空中应选择填入的是( )。 char *p;p= malloc(sizeof(char));
A.char
B.char *
C.(*char)
D.(char *)
25.已知ch是字符型变量,则不正确的赋值语句是( )。
A.ch=5+9;
B.ch='\0';
C.ch='7'+'9';
D.ch='a+b';