1.在一个C程序中()
A. main函数必须出现在所有函数之前
B. main函数可以出现在任何地方
C. main函数必须出现在所有函数之后
D. main 函数必须出现在固定位置
B
2.下列不合法的用户标识符是()
A. j2_KEY
B. Double
C. 4d_a
D.8
C
3,在“文件包含”预处理语句的使用过程中,当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索
C. 仅仅搜索源程序所在目录
D.仅仅搜索当前目录
B
4.下面合法的C语言字符常量是()
A. ‘t’
B. “A”
C. ‘xx’
D.A
A
5.下列选项中用于判断ch是否是字符的表达式是()
A.(‘a’<=ch<=‘z)I(‘A’<=ch<=Z’)
B. (‘a’<= ch <=‘z’) && (‘A’<= ch<=‘Z’)
C. (ch >=‘a’&& ch <= ‘z’) && (ch >= ‘A’ && ch <= ‘Z’)
D.(ch>=‘a’ &&ch <=‘z’)Il (ch>=‘A’ && ch<=‘Z’)
D
6.若a为int类型,且其值为3,则执行完表达式a+= a-= a*a后,a 的值是()
A.-3
B.9
C.-12
D.6
C
- 设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是()
A. 10<a<15
B.a=-=11ll a=-=12 ll a=-=13 ll a==14
C. a>10 && a<15
D. !(a<=10) && !(a>=15)
A
8,设ch是char型变量且为’A’,经过下面的表达式运算后ch的值是()
ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;
A.A
B. a
C.Z
D.zment
B
- 下列字符中,错误的转义字符是()
A.‘’
B. ‘\n’
C. ‘’’
D. ‘\091’
D
10,阅读以下程序段,如果从键盘上输入abc<回车>,则程序的运行结果是()
char ch;scanf("%3c",&ch);printf("%c",ch);
A.a
B.b
C.c
D.语法出错
A
- 若a、b、cl、c2、x、y均是整型变量,以下正确的switch语句是()
A.switch(a+b);{ case 1: y=a+b; break;case 0:y=a-b; break;)
B.
switch(a*a+b**b)
case 3:
case 1: y=a+b; break;
case 3: y=b-a, break;}
C
switch a{
case c1: y=a-b; break;
case c2: x=a*b; break;
default: x=a+b; }
D
switch(a-b){
default: y=a*b; break;
case 3: case 4: x=a+b; break;
case 10: case 11: y=a-b; break;)
D
12.有以下程序段
int n,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while (t!=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是()
A.任意正奇数
B.任意负偶数
C.任意正偶数
D.任意负奇数
D
- 以下定义语句中不正确的是()
A. double x[5]=(2.0, 4.0, 6.0, 8.0, 10.0);
B. char c20=("x10’, "xa’, "x8’);
C. char c1[]=(‘1’, ‘2’, ‘3’, ‘4’, ‘5’);
D. int y[5]={0,1,3,5,7,9);
D
14.以下能正确定义数组并正确赋初值的语句是()
A. int n=5,a[n];
B. int a[1][2]=((1),(3}};
C. char [s2]=[‘t’,‘e’,‘s’,‘t’ ]
D. char s1[10];s1=“test”;
C
- 下面是对s的初始化,其中不正确的是()。
A. char s[5]=(“abc”);
B. char s[5]=(‘a’, ‘b’, ‘c’);\
C. char s[5]=“”;
D. char s[5)=“abedef”;
D
16,在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()
A. extern
B. register
C. auto
D. static
D
17.下列函数定义中,会出现编译错误的是()。
A.
int max(int x, int y, int *z)
{*z=x>y? x:y;return *z;
}
B.
int max(int x, y)
{ int z;z = x>y? x:y;return z;
}
C.
int max(int x, int y)
{
int z;
z=x>y?x:y;
return (z);
}
D.
int max(int x, int y)
{return (x>y? x:y);
}
B
18.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,()是正确的。
A. p2=pl
B.p2=**pl
C.p2=&pl
D. p2=*pl
A
- 若有定义:int *p[3];则以下叙述中正确的是()。
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p.该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
B
20.若有以下说明和定义语句,则变量m在内存中所占的字节个数是()。
union aa{float x; float y; char c[6];);
struct stfunion aa; float w[5]; double ave;)m;
A. 42
B.34
C.30
D. 26
B
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。)
1_________
. #include <stdio.h>
int main(){int score, bonus;score = 60;bonus = 2;switch(bonus){case 1:score += 10;case 2:score += 20;case 3:score += 30;}printf("%d", score);return 0;
}
110
2._________
#include <stdio.h>
typedef struct date
{int year;int month;int day;}DATE;
void Func(DATE *p)
{
p->year=2018;
p->month = 12;
p->day = 25;