东大18春学期《高级语言程序设计基础》在线作业123满分
(2018-03-15 19:52:24)东大18春学期《高级语言程序设计基础》在线作业1
一、 单选题 (共 20 道试题,共 100 分)
1.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。 for (y=100;
x!=y; ++x,y++) printf("****\n");
A.循环体只执行一次
B.是无限循环
C.循环体一次都不执行
D.for语句中存在语法错误
2.若有说明: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
3.以下对C语言中共用体类型数据的叙述正确的是( )。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不能同时存放其所有成员
D.共用体类型定义中不能出现结构体类型的成员
4.设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(
)。
A.Z
B.A
C.a
D.z
5.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是(
)。
A.*pc[0]代表的是字符串"aaa
B.*pc[0]代表的是字符'a'
C.pc[0]代表的是字符串"aaa"
D.pc[0]代表的是字符'a'
6.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
A.*(a+1)
B.*(a[1]+2)
C.a[1]+3
D.a[0][0]
7.对以下说明语句的正确理解是( )。 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.因为数组与初值的个数不相同,所以此语句不正确
8.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.由用户指定传递方式
9.以下为一维整型数组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];
10.系统的标准输入文件是指( )。
A.键盘
B.显示器
C.软盘
D.硬盘
11.若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=10
C.a=10,b=10,c=10a=10,b=5,c=15
D.a=10,b=10,c=10a=10,b=5,c=5
12.若执行下述程序时从键盘输入3 4,则输出结果是( )。 #include
main( ) { int a,b,s; scanf("%d%d",&a,&b);
s=a; if (a
A.186
B.256
C.324
D.400
13.若有说明:int a[10];则对数组元素的正确引用是( )。
A.a[10]
B.a[3,5]
C.a(5)
D.a[10-10]
14.已知ch是字符型变量,则不正确的赋值语句是( )。
A.ch=5+9;
B.ch='\0';
C.ch='7'+'9';
D.ch='a+b';
15.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
A.该变量只在该复合语句中有效
B.该变量在该函数中有效
C.该变量在本程序范围内有效
D.该变量为非法变量
16.在C语言中,错误的int类型的常数是( )。
A.32768
B.0
C.37
D.0xAF
17.以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。
A.int x=y=z=5;
B.int x,y,z=5;
C.int x=5,y=5,z=5;
D.x=5,y=5,z=5;"
18.以下正确的函数说明是( )。
A.int fun(int a, b)
B.float fun(int a; int b)
C.double fun( )
D.int fun(char a[ ][ ])
19.以下程序段的运行结果是( )。 char a[ ]="program", *p; p=a; while
(*p!='g') { printf("%c", *p-32); p++; }
A.PROgram
B.PROGRAM
C.PRO
D.proGRAM
20.若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int
a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
A.*(a+i)
B.a[p-a+i]
C.p+i
D.*(&a[i])
东大18春学期《高级语言程序设计基础》在线作业2
一、 单选题 (共 20 道试题,共 100 分)
1.以下能正确读入字符串的程序段是( )。
A.char *p; scanf("%s", p);
B.char str[10]; scanf("%s", &str);
C.char str[10], *p; p=str; scanf("%s", p);
D.char str[10], *p=str; scanf("%s", p[1]);"
2.若执行下述程序时从键盘输入3 4,则输出结果是( )。 #include main(
) { int a,b,s; scanf("%d%d",&a,&b); s=a; if (a
A.186
B.256
C.324
D.400
3.系统的标准输入文件是指( )。
A.键盘
B.显示器
C.软盘
D.硬盘
4.若有以下程序段: for (m=1; m<=100; m++) { scanf("%d",
&y); if (y<0) continue; printf("=", m); }正确的描述是(
)。
A.当y<0时整个循环结束
B.y>=0时什么也不输出
C.printf函数永远也不执行
D.最多允许输出100个非负整数
5.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是(
)。if(x>y)z=x;x=y;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"
6.执行以下程序段后,y的值是( )。 int a[ ]={1, 3, 5, 7, 9} int x=0, y=1,
*ptr; ptr=&a[1]; while (!x) { y+=*(ptr+x); x++; }
A.1
B.2
C.4
D.24
7.下面程序的输出结果是( )。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.39 81
B.42 84
C.26 68
D.28 70
8.若有说明:int a[10];则对数组元素的正确引用是( )。
A.a[10]
B.a[3,5]
C.a(5)
D.a[10-10]
9.下面对typedef的叙述中不正确的是( )。
A.用typedef不能定义变量名
B.用typedef可以定义新的数据类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
10.以下为一维整型数组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];
11.已知ch是字符型变量,则不正确的赋值语句是( )。
A.ch=5+9;
B.ch='\0';
C.ch='7'+'9';
D.ch='a+b';
12.下面程序的输出结果为( )。 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.有语法错误
13.以下程序运行后,输出结果是( )。 #define ADD(x) x+x main( ) { int
m=1, n=2, s=3; s*=ADD(m+n); printf("s=%d\n", s); }
A.s=8
B.s=9
C.s=6
D.s=18
14.判断char型变量c1是否为大写字母的正确表达式是( )。
A.A'<=c1<='Z'
B.(c1>='A')&(c1<='Z')
C.(c1>='A')&&(c1<='Z')
D.('A'=c1)
15.若有定义:int a[2][3];,则以下对a数组元素地址的正确表示为( )。
A.*(a+1)
B.*(a[1]+2)
C.a[1]+3
D.a[0][0]
16.若调用fputc函数输出字符成功,则函数的返回值是( )。
A.输出的字符
B.-1
C.0
D.EOF
17.设c1、c2均是char类型变量,则以下不正确的函数调用是( )。
A.scanf("c1=�2=%c",&c1,&c2);
B.getchar( )
C.putchar(c2);
D.putchar(c1,c2)"
18.以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k;
a=p!=&m; printf("%d\n",a); }
A.-1
B.0
C.1
D.2
19.C语言中字符型(char)数据在内存中的存储形式是( )。
A.原码
B.补码
C.反码
D.ASCII码
20.以下判断正确的是( )。
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"};"
东大18春学期《高级语言程序设计基础》在线作业3
一、 单选题 (共 20 道试题,共 100 分)
1.若调用fputc函数输出字符成功,则函数的返回值是( )。
A.输出的字符
B.-1
C.0
D.EOF
2.判断char型变量c1是否为大写字母的正确表达式是( )。
A.A'<=c1<='Z'
B.(c1>='A')&(c1<='Z')
C.(c1>='A')&&(c1<='Z')
D.('A'=c1)
3.以下能正确读入字符串的程序段是( )。
A.char *p; scanf("%s", p);
B.char str[10]; scanf("%s", &str);
C.char str[10], *p; p=str; scanf("%s", p);
D.char str[10], *p=str; scanf("%s", p[1]);"
4.以下正确的描述是( )。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
5.设x,y是float型变量,则不正确的赋值语句是( )。
A.++x;
B.y=int(5);
C.x*=y+1;
D.x=y=0;
6.以下正确的定义语句是( )。
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};
7.设有一段程序: int *var,a; a=100;var=&a;a=*var+10;
执行上面程序段后a的值为( )。
A.120
B.110
C.100
D.90
8.以下运算正确的程序段是( )。
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);"
9.设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是( )。
scanf("M+=+-+",&a,&b,&c,&d);printf("M+=+-+",a, b,
c, d);
A.1234123121
B.1234123412341234
C.1234+1234+1234+1234
D.1234+123+12+1
10.以下正确的说法是( )。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共用存储单元
D.形参是虚拟的,不占用存储单元
11.若有语句: char s1[ ]="Shenyang", s2[10],*s3, *s4="NEU_soft";
则对库函数strcpy调用正确的是( )。
A.strcpy(s1, s4);
B.strcpy(s2, s4);
C.strcpy(s3, s1);
D.strcpy(s4, s1);"
12.C语言的编译系统对宏命令的处理是( )。
A.在对源程序中其它成分正式编译之前进行的
B.和C程序中的其它语句同时进行的
C.在程序连接时进行的
D.在程序运行时进行的
13.若有以下程序段: …… 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进行选择排序(降序)
14.下面程序的运行结果是( )。 main() { struct cmplx { int x; int y; }
cm[2]={1,2,3,4}; printf("%d\n", 2*cm[0].x+ cm[1].y/cm[0].y);}
A.5
B.2
C.3
D.4
15.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.数组元素x[5]的地址
B.数组元素a[5]的值
C.数组元素a[6]的地址
D.数组元素a[6]的值
16.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.float
B.int
C.long
D.double
17.已知ch是字符型变量,则不正确的赋值语句是( )。
A.ch=5+9;
B.ch='\0';
C.ch='7'+'9';
D.ch='a+b';
18.若a为int类型变量,则执行以下程序段后a的值为( )。 a=5;a*=a/=a++;
A.2
B.1
C.40
D.3
19.当定义一个结构体变量时系统分配给它的内存是( )。
A.结构中第一个成员所需的内存量
B.结构中最后一个成员所需的内存量
C.结构体成员中占内存量最大者所需的容量
D.结构体中各成员所需内存量的总和
20.有字符数组a[80]和b[80],则正确的输出语句是( )。
A.puts(a.b);
B.printf("%s,%s",a[],b[]);
C.pitchar(a,b);
D.puts(a); puts(b);