绝密★启用前 学院
学年 期末考试
级 专业( )《C语言程序设计》试卷
题号 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 总 分 | |
得分 | 评卷人 | ||||||||
得分 | 评卷人 |
一、单项选择题(本大题共15小题,每小题2分,共30分)
1.函数调用语句“f((e1,e2),(e3,e4,e5))”中参数的个数是( )
A.1 B.2 C.3 D.5
A.1 B.2 C.3 D.5
2.不正确的标识符是( )
A._a2 B.2ai C.a2_i D.INt
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
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为假
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;
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}
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
A.a2+b B.a*a+b C.a×a+b D.a•a+b
8.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为( )
A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算
C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算
A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算
C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算
9.表达式strcmp(“3.14”,“3.278”)的值是一个( )
A.非零整数 B.浮点数 C.0 D.字符
A.非零整数 B.浮点数 C.0 D.字符
10.执行下列语句printf(“%d”,’a’= =’A’)后输出为( )
A.1 B.语法错 C.0 D.97
A.1 B.语法错 C.0 D.97
11.若数组定义为int a [4][5];则下列哪个表达式是错误的?( )
A.*a B.a[1][1] C.&a[2][3] D.++a
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
A.windows95 B.windows C.95 D.95windows
13.求一个双精度实数的绝对值,应该调用函数( )
A.sqrt B.pow C.abs D.fabs
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
A.3 B.4 C.5 D.0
二、判断题(判断下列各题,正确的在题后括号内打“√”,错的打“×”。本大题共5小题,每小题2分,共10分)
16.主函数可以分为两个部分:主函数说明部分和主函数体。 ( )
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的值。程序的输出结果是:
请在每小题的空格中填上正确答案。错填、不填均无分。
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>
#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);}
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;
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);
}
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()
{
#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函数括号内参数的构成解说
}
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。
1、写一个程序,读入一个3×3的矩阵,输出它的转置。(注:转置是将原矩阵的行列互换)
2、求出10到100之间的素数(只能被1和自身整除的数)并以每行一个素数的格式顺序写入文件su.dat。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论