绝密★启用前          学院
          学年    期末考试
          专业( )《C语言程序设计》试卷 
题号
总  分
得分
评卷人
得分
评卷人
一、单项选择题(本大题共15小题,每小题2分,共30分)
1.函数调用语句“f((e1,e2),(e3,e4,e5))”中参数的个数是(   )
A.1     B.2        C.3     D.5
2.不正确的标识符是(   )
A._a2    B.2ai        C.a2_i    D.INt
3.若int a[3]={1,2,3},*p;则下列赋值语句中正确的是(   )
A.p=&a;   B.*p=a;    C.*(a+1)=a;    D.p=a+1
4. C程序在作逻辑运算时判断操作数真、假的表述中,正确的是(   )
A.0为假,非0为真  B.只有1为真  C.-1为假,1为真   D.0为真,非0为假
5.若p1、p2都是指向整型的指针,p1已经指向数量x,要使p2也指向x,正确的是(   )
A.p2=p1;    B.p2=**p1;    C.p2=&p1;   D.p2=*p1;
6.定义一个有4个元素的一维整型数组,正确的是(   )
A.float a[4];  B.int a[]={1,2,3,4,5};  C.int a[]={1,2,3};    D.int a[4]={1}
7.若变量a,b已经正确定义并赋值,符合C语言语法的表达式是(   )
A.a2+b    B.a*a+b    C.a×a+b    D.a•a+b
8.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为(   )
A.算术运算、赋值运算、关系运算    B.算术运算、关系运算、赋值运算
C.关系运算、赋值运算、算术运算    D.关系运算、算术运算、赋值运算
9.表达式strcmp(“3.14”,“3.278”)的值是一个(   )
A.非零整数     B.浮点数    C.0    D.字符
10.执行下列语句printf(“%d”,’a’= =’A’)后输出为(   )
A.1      B.语法错    C.0    D.97
11.若数组定义为int a [4][5];则下列哪个表达式是错误的?(   )
A.*a    B.a[1][1]    C.&a[2][3]      D.++a
12.若定义char a[80]=“95”,b[]=“windows”;则语句printf(“%s”,strcry(a,b));的输出结果为(   )
A.windows95    B.windows    C.95    D.95windows
13.求一个双精度实数的绝对值,应该调用函数(   )
A.sqrt  B.pow    C.abs   D.fabs
14.表达式10%2值是(   )
A.0    B.1      C.5  D.5.0
15.若变量已正确定义,表达式(j=3,j++)的值是(   )
A.3    B.4    C.5  D.0
二、判断题(判断下列各题,正确的在题后括号内打“√”,错的打“×”。本大题共5小题,每小题2分,共10分)
16.主函数可以分为两个部分:主函数说明部分和主函数体。   (      )
17.函数的定义和函数的调用均可以嵌套。     (      )
18.在C语言中,当我们定义了数组int a[5];则数组元素的下标从1到5。 (      )
19.在C语言中,“A”占两个字节,而‘A’占一个字节。   (      )
20.程序中定义的整型变量的初值都为0。     (      )
三、程序填空题(本大题共2小题,共6个空格,每空4分,共24分)
请在每小题的空格中填上正确答案。错填、不填均无分。
1、下面程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:
After Call Function Swap 5,9。
#include<stdio.h>
void main(){
int x=9,y=5;
swap(    ①    );
printf(“After Call Function Swap %d, %d”,x,y);
}
swap(    ②    ){
int temp;
temp=*x;
    ③    ;
*y=temp; }
2、输入一个正整数后,输出该数的位数。例如,若输入3576,则输出为4,输入为31678,则输出为5。
#include<stdio.h>
void main(){
int n,k=0;
scanf(“%d”,    ④    );
while(    ⑤    ){
k++;
n=     ⑥    ;
}
printf(“%dn”,k);}
四、程序分析题(本大题共2小题,每小题8分,共16分)
1、阅读下列程序段,简述其主要功能。
#include<stdio.h>
void main()
{
FILE*fpd1, *fpd2;
char ch;
fpd1=fopen(“d1.dat”,“r”);
fpd2=fopen(“d2.dat”,“w”);
while(fscanf(fpd1,“%c”,&ch)!=EOF)
if (ch>=’A’&& ch <=’Z’‖ch>=’a’&& ch<=’z’)
fprintf(fpd2,“%c”,ch);
fclose(fpd1);
fclose(fpd);
}
                                                       
2、阅读下列程序段,简述其主要功能。
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],b[100],*p,*q;
int m;
gets(a);
scanf(“%d”,&m);
p=a;q=b;
for(p=p+m-1);*p!=’’;p++,q++)
*q=*p;
*q=’’;
printf(“%sn”,b);printf函数括号内参数的构成解说
}
                                                           
五、程序设计题(本大题共2小题,每小题10分,共20分)
1、写一个程序,读入一个3×3的矩阵,输出它的转置。(注:转置是将原矩阵的行列互换)
2、求出10到100之间的素数(只能被1和自身整除的数)并以每行一个素数的格式顺序写入文件su.dat。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。