一、单选题(每小题2分,共20分)
1. C语言源程序文件的缺省扩展名为(D)。
A. cpp B. exe C. obj D. C
2.设x和y均为逻辑值,则x && y为真的条件是(A)。
A. 它们均为真 B. 其中一个为真
C. 它们均为假 D. 其中一个为假
3. 在下列的符号常量定义中,正确的定义格式为(C)。
A. #define M1 B. const int M2 20
C. #define M3 10 D. const char mark
4. for循环语句能够被改写为(D)语句。
A. 复合 B. if C. switch D. while
5. 在下面的一维数组定义中,错误的定义格式为(C)。
A. int a[]={1,2,3} B. int a[10]={0}
C. int a[] D. int a[5]
6.下面的函数原型声明中存在语法错误的是(C)。
A. AA(int a, int b) B. AA(int, int)
C. AA(int a; int b;) D. AA(int a, int)
7. 假定a为一个数组名,则下面存在错误的表达式为的(B)。
A. a[i] B. *a++ C. *a D. *(a+1)
8. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为(D)。
A. x=pa[3] B. x=*(a+3)
C. x=a[3] D. x=*pa+3
9.char类型的长度为(A)个字节。
A. 1 B. 2 C. 3 D. 4
10. 向一个二进制文件中写入信息的函数为(D)。
A. fgets() B. fputs()
C. fread() D. fwrite()
二、填空题(每小题2分,共26分)
1. C语言中的每条复合语句以_ }(或右花括号)作为结束符。
2. 在#include命令中所包含的文件,可以是头文件,也可以是_程序_文件。
3. 十进制数35对应的八进制数为 43 。
4. 假定x=5,则表达式2+x++的值为 7 。
5.增量表达式++y表示成赋值表达式为y=y+1 。
6.若x=5,y=10,则x>y的值为0(假)。
7. 假定二维数组的定义为“int a[3][5];”,则该数组所含元素的个数为15 。
8. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的_数组_类型。
9. strcat()函数用于连接两个字符串。
10.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为 25 。
11. 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p 。
12. NULL是一个符号常量,通常作为空指针值,它对应的值为 0 。
13. 假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为 struct Worker* r =malloc(sizeof(struct Worker))。
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1. #include<stdio.h>
void main() {
int i,s=0;
for(i=1;i<6;i++) s+=i*i;
printf(“s=%d/n”,s); }
运行结果: s=55
2. #include<stdio.h>
#define N 6
void main() {
int i,a[N]={2,5,8,10,15,21};
for(i=0; i<N; i++)
if(a[i]%5) printf("%d ",a[i]);
printf("/n"); }
运行结果: 2 8 21
3. #include<stdio.h>
#include<string.h>
void main() {
int i;
unsigned int len;
char* a[5]={"student","worker","cadre","soldier","zzeasan123"};
len=strlen(a[0]);
for(i=1; i<5; i++)
if(strlen(a[i])>len) len=strlen(a[i]);
printf("%d/n",len); }
运行结果:10
4. #include<stdio.h>
void main() {
int a,b;
for(a=2,b=3; b<20;) {
printf("%d %d ",a,b);
a=a+b;
b=a+b; }
printf("%d %d/n",a,b); }
运行结果:2 3 5 8 13 21
5. #include<stdio.h>
void LE(int* a, int* b) {
int x=*a;
*a=*b; *b=x; }
void main() {
int x=15, y=26;
printf("%d %d/n",x,y);
LE(&x,&y);
printf("%d %d/n",x,y); }
运行结果:15 26
26 15
五、按题目要求编写程序或函数(每小题6分,共12分)
1. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。
#include<stdio.h>
void main() {
int i;
for(i=3; i<=50; i++)
if(i%3==0 || i%5==0) printf("%d ",i);
printf("/n"); }
2. 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。
2. int FF(int a[], int n) {
if(n<=0) {printf("n值非法/n"),exit(1);}
if(n==1) return a[n-1];
else return a[n-1]*FF(a,n-1); }
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
高考语文备考:《劝学》情景默写题汇总04-27
高考语文备考:诗歌鉴赏高分攻略04-27
高考语文作文备考:议论文才能拿高分04-27
高考语文备考:《逍遥游》情景默写题汇总04-27
高考语文备考:成语题总丢分的12个错误04-27
高考语文备考:文言文解题技巧04-27
高考语文备考:文言文人物传记阅读总结04-27