天津大学20春《C语言程序设计》在线作业二[答案]满分答案
《C语言程序设计》在线作业二
试卷总分:100 得分:100
一、单选题 (共 40 道试题,共 100 分)
1.使用scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的输入格式是()。
A.a=2.2,b=3
B.a=2.2 b=3
C.2.2 3
D.2.2,3
2.程序 #include <stdio.h> void main( ) { struct ss{ int x; float y; } m[2]={10, 5.6, 20, 7.8}; printf(“%5.1f\n”, m[0].x*m[1].y); } 执行后的输出结果是( )
A.78.0
B.56.0
C.5.6
D.7.8
3.以下正确的整型常数是( )
A.79.
B.3.1416
C.2×102
D.80
4.下列不属于字符常量的是( )
A.‘\n’
B.”k”
C.’A’
D.’3’
5.设int a=2,b=3,c;,以下不正确的赋值语句是_____.
A.b=a=10;
B.b+=a%5;
C.a+=b++=c;
D.a+=b+=5;
6.程序#include <stdio.h> void main() { int i,a[5]={1,2,3,4,5}; i=3; switch(i-1) { case 1:printf(“%d”,a[0]); case 2:printf(“%d”,a[1]); case 3:printf(“%d”,a[2]);break; define:printf(“%d”,a[3]);break; } printf(“\n”); } 执行后的输出结果是( )
A.12
B.23
C.234
D.1234
7.程序 #include<stdio.h> void f (int *x, int *y ) { int t; t=*x; *x=*y; *y=t; } void main() { int a[ ]={1,2,3,4,5,6}, i, *p, *q; p=a; q=a+5; while(p<q) { f(p,q); p++; q--; } for( i=0; i<6; i++) printf(“%d ”, a[i] ); } 程序的输出结果是( )
A.6 5 4 3 2 1
B.1 2 3 4 5 6
C.6 1 2 3 4 5
D.4 5 6 1 2 3
8.下列叙述不正确的是________。
A.函数定义可以嵌套
B.宏定义可以嵌套
C.函数调用可以嵌套
D.循环结构可以嵌套
9.以下叙述错误的是___ 。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.C程序的注释只能位于语句的后面
10.程序 #include <stdio.h> void main( ) { struct cmp{ int a; int b; }x={5,3},y={6,4 }; printf(“%d\n”, x .b*y.a); } 执行后的输出结果是( )
A.12
B.15
C.18
D.30
11.下列合法的数组定义是 ___ 。
A.char a[ ]="hello";
B.int a[4]={4,3,2,1,0};
C.char a="hello" ;
D.char a[4]= "hello";
12.设int a[][3]={1,3,5,2,4,6,0};,则a数组的行数是______。
A.2
B.3
C.4
D.任意
13.设int a=5,b=2,c=3,d=4;,则表达式(a<b)?c+d:c-d 的值是____.
A.-1
B.3
C.4
D.7
14.p1,p2 为指向浮点类型的指针变量,下列运算没有意义的是________。
A.*p1-*p2
B.p1++
C.*p1+*p2
D.p1+p2
15.下列选项中,书写正确的是 ___ 。
A.#define PI=3.14159
B.include “stdio.h”
C.define M 3
D.#define PI 3.14159
16.以下可以用于C语言用户标识符的是( )
A.max
B.2x
C.do
D.x*y
17.设int a[6]={1,2,3,4,5,6 }, *p=a;, *(p+3)的值是____.
A.3
B.4
C.5
D.6
18.若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a的元素个数为()。
A.8
B.5
C.3
D.15
19.程序 #include <stdio.h> void main() { char str[][10]={ ”ABC”,“DEF”,”GHI”,”XYZ”}; int i; for(i=0;i<3;i++) printf(“%s ”,str[i]); } 执行后的结果是( )
A.ABCDEF
B.ABCDEFGHI
C.ADG
D.ABCDEFGHIXYZ
20.对于程序片段 int i,a[5];for(i=0;i<5;i++)scanf(“%d”,&a[i]); 若要使数组元素的值分别为1,2,3,4,5,正确的输入是 _________。
A.1,2,3,4,5
B.1 2 3 4 5
C.12345
D.1;2;3;4;5
21.执行printf(“%-4d%c”,85,'A');后的结果是_____(每个□代表一个空格)。
A.85A
B.85□□A
C.□□85A
D.□□85□□A
22.以下可以作为变量名的是( )
A.3x
B.double
C.sum_1
D.a+b
23.程序: #include <stdio.h> void main( ) { int a=15,b=4; printf(“%d\n”, a=a/b); } 的输出结果是( )
A.3
B.3.5
C.a=3
D.a=3.500000
24.设int a[5]={2,4,6,8,10},*p=a;, 则a[p-a+2]的值是_______。
A.2
B.4
C.6
D.8