东大21秋学期学期《高级语言程序设计基础》在线平时作业1[答案]答案
《高级语言程序设计基础》在线平时作业1
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.在C语言中,整数-8在内存中的存储形式是( )。
A.1111 1111 1111 1000
B.1000 0000 0000 1000
C.0000 0000 0000 1000
D.1111 1111 1111 0111
正确答案:-----
2.一个C语言程序总是从( )。
A.主过程开始执行
B.主函数开始执行
C.子程序开始执行
D.主程序开始执行
正确答案:-----
3.有两个字符数组a、b,则以下正确的输入语句是( )。
A.gets(a,b);
B.scanf("%s%s",a,b);
C.scanf("%s%s",&a,&b);
D.gets("a"); gets("b");"
正确答案:-----
4.设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
正确答案:-----
5.下面程序段的输出结果是( )。 int a=023;printf("%d ",--a);
正确答案:-----
A.23
B.17
C.21
D.24
正确答案:-----
6.若有说明:int a[3][4];则数组a中各元素( )。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
正确答案:-----
7.以下正确的描述是( )。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
正确答案:-----
8.以下正确的函数说明是( )。
A.int fun(int a, b)
B.float fun(int a; int b)
C.double fun( )
正确答案:-----
D.int fun(char a[ ][ ])
正确答案:-----
9.以下正确的定义语句是( )。
A.int a[1][4]={1,2,3,4,5};
B.float x[3][]={{1},{2},{3}};
C.long b[2][3]={{1},{1,2},{1,2,3}};
D.double y[][3]={0};
正确答案:-----
10.若有定义: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
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[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组与初值的个数不相同,所以此语句不正确
正确答案:-----
13.已知ch是字符型变量,则不正确的赋值语句是( )。
A.ch=5+9;
B.ch='\0';
C.ch='7'+'9';
D.ch='a+b';
正确答案:-----
14.以下程序段的运行结果是( )。 char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; }
A.PROgram
B.PROGRAM
C.PRO
D.proGRAM
正确答案:-----
15.以下为一维整型数组a的正确说明是( )。
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
正确答案:-----
D.#define SIZE 10;int a[SIZE];
正确答案:-----
16.若有说明: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
正确答案:-----
17.执行下面程序段后,x的值是( )。 int x;printf("%d ",(x=3*5,x+5));
正确答案:-----
A.10
B.15
C.20
D.5
正确答案:-----
21.以下对指针变量的操作中,不正确的是( )。
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;"
正确答案:-----
19.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A.程序文件的开始
B.程序文件的最后
C.它所调用的函数的前面
D.程序文件的任何位置
正确答案:-----
20.以下程序的运行结果是( )。 # include "stdio.h" main() { struct date { int y,m,d;} today; printf("%d ", sizeof(struct date));}
正确答案:-----
A.2
B.3
C.6
D.出错
正确答案:-----
东大21秋学期学期《高级语言程序设计基础》在线平时作业1[答案]历年参考题目如下:
20春学期《高级语言程序设计基础X》在线平时作业3
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.以下能正确定义整型变量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;
2.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.数组元素x[5]的地址
F.数组元素x[5]的值
3.以下为一维整型数组a的正确说明是( )。
A.int n; scanf("%d",&n); int a[n];
B.int n=10,a[n];
C.int a(10);
D.#define SIZE 10;int a[SIZE];
4.执行下面程序段后,x的值是( )。 int x;printf("%d ",(x=3*5,x+5));
A.5
B.20
C.15
D.10
5.若有以下程序段: …… 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进行插入排序(升序)
6.下面程序的输出结果是( )。main(){ int x,i;for(i=1;i<=100;i++){ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d ",x);}}
A.42 84
B.39 81
C.28 70
D.26 68
7.下面程序的运行结果是( )。 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.4
C.3
D.2
8.以下程序的输出结果是( )。 main() { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf("d=%d ",d);}
A.d=25
B.d=20
C.d=15
D.d=10
9.若有以下语句,则对x数组元素引用不正确的是( )。 int x[ ]={1, 2, 3, 4, 5, 6}, *ptr;ptr=x;
A.*(ptr--)
B.*(ptr++)
C.*(--ptr)
D.*(++ptr)
10.以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d ",a); }
A.2
B.1
C.0
D.-1
11.若用fopen打开一个ABC二进制文件,要求文件既能读又能写,则应选用的文件方式字符串是( )。
A."wb+
B."rb+"
C."r+"
D."ab+""
12.以下对指针变量的操作中,不正确的是( )。
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;"
13.若有说明:int a[10];则对数组元素的正确引用是( )。
A.a(5)
B.a[3,5]
C.a[10-10]
D.a[10]
14.以下能正确读入字符串的程序段是( )。
A.char str[10]; scanf("%s", &str);
B.char str[10], *p=str; scanf("%s", p[1]);"
C.char str[10], *p; p=str; scanf("%s", p);
D.char *p; scanf("%s", p);
15.设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( )。
A.z
B.a
C.Z
D.A
16.以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。
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))"
17.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.num%2
C.!(num%2==0)
D.!(num%2)
18.下面程序( )。(每行程序前的数字为行号) 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.第7行有错误
B.第5行有错误
C.第3行有错误
D.没有错误
19.若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
A.i=x[1][1]
B.i=*(x[1]+1)
C.i=*(*(x+1)+1)
D.i=*(*(x+1))
20.若二维数组a有m列,则在a[i][j]前的元素个数为( )。
A.j*m+i
B.i*m+j-1
C.i*m+j+1
D.i*m+j
21.函数rewind(fp)的作用是:使文件位置指针( )。
A.重新返回文件的开头
B.返回到前一个字符的位置
C.自动移至下一个字符的位置
D.指向文件的末尾