一、单项选择题(只有一个选项正确,共11道小题) |
1. 以下正确的C标识符是 |
(A) 0XH |
(B) _80 |
(C) main# |
(D) A |
你选择的答案: B [正确] |
正确答案:B |
解答参考: | |
|
2. 以下说法中正确的是 |
(A) 一个函数在编译时被分配得到一个入口地址,这个入口地址称为函数的指针 |
(B) a/=b+c;这个式子和a=a/b+c;等价 |
(C) C语言开始执行程序的开始执行点是程序中第一条可执行的语句。 |
(D) 对二维数组a赋值可以用这样的语句完成int a[4][]={1,2,3,4,5,6,7,8}; |
你选择的答案: A [正确] |
正确答案:A |
解答参考: | |
|
3.
设a是int型变量,b是float型变量,用下面的语句给这两个变量输入值
scanf("a=%d,b=%f",&a,&b); 为了把100和76.5分别赋给i和f,则正确的输入为: |
(A) 100 76.5 |
(B) a=100,b=76.5 |
(C) 10076.5 |
(D) a=100 b=76.5 |
你选择的答案: B [正确] |
正确答案:B |
解答参考: | |
|
4.
若有如下说明 。
char a[10]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’},*p=a;
则输出表达式*(p+8),即printf("%c\n",*(p+8));得到 |
(A) g |
(B) h |
(C) i |
(D) j |
你选择的答案: C [正确] |
正确答案:C |
解答参考: | |
|
5.
函数Func的功能是( )
int Func(char *ptr)
{ char *p;
p=ptr;
while (*p++);
return (p-ptr-1);
}
|
(A) 比较两个字串的大小 |
(B) 求字符串的长度 |
(C) 将串ptr复制到p中 |
(D) 以上三种说法都不对 |
你选择的答案: B [正确] |
正确答案:B |
解答参考: | |
|
6. 以下可作为函数fopen中第一个参数的正确格式是 |
(A) c:user\text.tex |
(B) c:\user\text.txt |
(C) “c:user\text.tex” |
(D) “c:\\user\\text.txt” |
你选择的答案: 未选择 [错误] |
正确答案:D |
解答参考: | |
|
7.
若有宏定义#define PI 3.14
#define S(r) PI*r*r
则主函数中语句s2=S(r+3); 宏替换后的结果为
|
(A) s2=PI*r+3*r+3 |
(B) s2=3.14*(r+3)*(r+3) |
(C) s2=3.14*r+3*r+3 |
(D) s2= PI*r*r |
你选择的答案: C [正确] |
正确答案:C |
解答参考: | |
|
8. 当调用函数时,实参是一个数组名,则向函数传送的是 。 |
(A) 数组的长度 |
(B) 数组的首地址 |
(C) 数组每一个元素的地址 |
(D) 数组每个元素中的值 |
你选择的答案: B [正确] |
正确答案:B |
解答参考: | |
|
9. 若有函数声明为:void func(double *p);则以下函数调用正确的是____。 |
(A) double x; f(x); |
(B) double x; f(*x); |
(C) double x; f(&x); |
(D) int x; f(&x); |
你选择的答案: B [错误] |
正确答案:C |
解答参考: | |
|
10. 若定义typedef union {int a; long b; double c; } TY; 则表达式sizeof(TY)的值为 。 |
(A) 1 |
(B) 2 |
(C) 4 |
(D) 8 |
你选择的答案: D [正确] |
正确答案:D |
解答参考: | |
|
11.
要用fopen函数打开一个新的二进制文件,该文件要既能写也能读,则文件方式字符 串应是 (10) 。 |
(A) “ab+” |
(B) “wb+” |
(C) “r+” |
(D) “ab” |
你选择的答案: B [正确] |
正确答案:B |
解答参考: | |
|
(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。) |
二、主观题(共16道小题) |
12.
main()
{ int x=2,y=-1,z=2;
if(x
if(y<0) z=0;
else z+=1;
printf(“%d\n”,z);
} 写出程序输出结果 (1) 。 |
参考答案: 2 | |
13. 下面程序的运行结果是 (2) 。
void fl(void)
{int x=1;
static y=2;
x++;
y++;
printf("%d,%d\n",x, y);
}
void main()
{ int k;
for(k=1;k<=3;k++) fl();
}
|
参考答案:
2, 3 错一行扣1分
2, 4 无逗号扣1分
2, 5 无换行扣1分 | |
14. #include ”stdio.h”
void main()
{char a[61],*s;int n;
gets(a);
for(s=a;*s;s++) if(*s>=’A’ && *s<=’Z’) *s+=32;
puts(a);
}
若程序的输入为SWJTU,则输出结果为 (3) 。 |
参考答案: swjtu | |
15. #include “stdio.h”
#define N 5
int swap(int *p, int *q)
{int t;
if(p
return p
}
void f(int a[ ],int m)
{int *p, *q;
p=a;q=a+m;
while(swap(p,q))
{p++; q--}
}
void main( )
{int m,a[N];
for(m=0;m
f(a,N-1);
for(m=0;m
} 若程序的输入为8 9 2 3 4, 则输出结果为 (4) 。 |
参考答案:4 3 2 9 8 | |
16. 写一个程序,建立N元整型数组,然后输入一个整数x,查找x是否包含在数组中,若在,则返回第一次出现的下标以及总的出现次数;否则,输出下标为-1, 总的出现次数为0. (8分) |
参考答案:
#include “stdio.h”
#define N 8
int locate(int a[N],int x,int *pc)
{ int i,first=-1;
*pc=0;
for(i=0;i<N;i++) if(a[i]==x) { if(*pc==0) first=i; (*pc)++;
return first;
}
void main()
{int a[N],i,count,p;
printf(“Input %d int numbers:\n”,N);
for(i=0;i<N;i++) scanf(“%d”,a+i);
printf(“Input x=“);scanf(“%d”,&x);
p=locate(a,x,&count);
printf(“First position=%d,count=%d\n”,p,count);
}
(1) 正确定义变量 1分
(2) 算法正确 5分
(3) 正确输入 1分
(4) 正确输出 1分 | |
17. 输入若干双精度实数,直到0时停止,计算并输出这些实数的平均值。 |
参考答案:
#include “stdio.h”
void main()
{ int n=0; double a, sum=0, av;
printf(“Input double type numbers until input 0:\n”);
while(1)
{ scanf(“%lf”,&a); if(!a) break;
n++;sum+=a;
}
if(n==0) printf(“No input data.\n”);
else { av=sum/n;
printf(“av=%.4f\n”,av);
}
}
(1) 程序结构(主函数,包含文件)正确 1分
(2) 正确定义计数变量以及初始化 1分
(3) 正确定义求和变量并初始化 1分
(4) 循环控制结构正确 1分
(5) 输入语句及格式正确 1分
(6) 输出语句及格式正确 1分
(7) 计数、累加求和以及求均值正确 1分
(8) 求均值时先判断计数变量值是否为0 1分 | |
18. C语言的三种循环语句是,do while循环、 循环和 循环;结构化程序设计方法主张限制使用 语句。 |
参考答案:
1) while 2) for 3) goto
| |
19. 已知int a = 2, b = 3 , c=0; 执行下列语句后,写出各变量的值。
c = b++―a++ ; 变量a = ,b= ,c= |
参考答案:3 4 1 | |
20. 循环语句for( i=0; i<=10; i--); 其循环的次数为___ |
参考答案:0 | |
21. C语言提供了三种预处理功能,它们是:宏定义、包含文件和 |
参考答案:条件编译 | |
22. 若有定义:int a=0,b=0,c=0,d=0;则执行语句a=(b=3,c=5*b++,d=++c+1);后,变量a的值是 ,变量b的值是 ,变量c的值是 ,变量d的值是 。 |
参考答案:
17 4_____16_____17__ | |
23. 若有定义:int a=1,b=2,c=3,d=4;,则表达式:a<=b?a:c<=d?a:d的值是 ,执行表达式 (a>b)&& (c++) 后,c的值为 。 |
参考答案:1 3 | |
24. 有如下语句:char A[ ]={ "SWJTU" }; 该字符串的长度是 ,A[3]= 。 |
参考答案:5 ‘T’(允许无单引号和写ASCII码84) | |
25. 若有定义char ch='C'; 则puchar((ch>='A' && ch<='Z')? (ch + 32) : ch);语句的输出结果为 。 |
参考答案:c | |
26. 若有定义int a[]={ 1,2,3,4 }, *p=a+1; 则表达式*++p的值为 。 |
参考答案:3 | |
27. 若有类型定义typedef int Mat[10]; 则 Mat a[5]; 表示的实际数组定义是 。 |
参考答案:int a[5][10]; | |
|