四川大学C语言期末试题最新版文档格式.docx
《四川大学C语言期末试题最新版文档格式.docx》由会员分享,可在线阅读,更多相关《四川大学C语言期末试题最新版文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
B)return语句中表达式值的类型
C)调用函数时的实参的类型
D)函数定义时形参的类型
11.设已有定义:
“floata;
”,则以下对指针变量p进行定义且赋初值的语句中正确的是 。
A)float*p=1068;
B)int*p=(int)a;
C)floatp=&
a;
D)float*p=&
12.若有说明语句:
“float*p,a;
”,则能通过scanf语句正确给输入项读入数据的程序段是 。
A)*p=&
scanf("
%f"
p);
B)*p=&
%lf"
C)p=&
*p);
D)p=&
13.若有以下说明和定义:
uniondt
{
shortinta;
charb;
doublec;
}data;
以下叙述中错误的是 。
A)data的每个成员起始地址都相同
B)变量data所占的内存字节数与成员c所占字节数相等
C)程序段“data.a=6;
printf("
%f\n"
data.c);
”输出结果为6.000000
D)data可以作为函数的实参
14.以下叙述中正确的是 。
A)在源文件的一行上可以有多条预处理命令
B)宏名必须用大写字母表示
C)宏替换不占用程序的运行时间
D)前面都是错语的
15.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为 。
A)EOFB)1C)0D)NULL
16.以下叙述中错误的是 。
A)改变函数形参的值,不会改变对应实参的值
B)函数可以返回地址值
C)可以给指针变量赋一个整数作为地址值
D)函数的形参可为指针类型
二、填空题(第小题2分,共14分)
1.已定义“charch=6;
inti=6,j;
”,执行“j=ch||i++”以后,i的值为 。
2.设有定义语句:
“inta[][8]={{0},{1},{2}};
”,则数组元素a[1][2]的值为 。
3.已知inta=3,a的地址为1008,则&
a=。
4.设有定义:
“FILE*fp;
”,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。
fp=fopen)("
readme.txt"
"
"
);
5.已有定义:
“int*p;
”,请写出完整的语句,利用malloc函数使p指向一个整型的动态存储单元 。
6.声明外部变量的关键字是extrun。
7.int类型的变量的值只能是所指定的若干名字之一。
三、阅读下面各程序,写出运行结果(每小题5分,共30分)
1.有以下程序:
#include<
stdio.h>
intmain(void)
charal='
M'
a2='
m'
a3='
u'
;
printf("
%c\n"
(al,a2,a3));
return0;
}
运行结果是:
2.有以下程序:
intk=6;
while(--k)printf("
%d"
k-=4);
3.有以下程序:
inti=-1;
doprintf("
i);
while(++i);
%d\n"
4.有以下程序:
doublefun1(doublea){returna*a;
}
intfun2(doublex,doubley)
doublea=fun1(x),b=fun1(y);
returna+b;
intw=fun2(1.3,2.0);
w);
5.有以下程序:
intf(intn)
if(n==1)return1;
elsereturnn+f(n-1);
f(5));
6.有以下程序:
voidpoint(char*p){p+=5;
charb[]={'
a'
'
b'
c'
d'
f'
g'
},*p=b;
point(p);
*p);
四、程序填空题(每空2分,共12分)
1.以下程序的功能是:
输出a、b、c三个变量中的最小值。
将程序补充完整。
inta,b,c,t1,t;
%d%d%d"
&
a,&
b,&
c);
t=a<
b?
[1];
t=c<
t?
[2];
t);
2.以下程序调用invert函数按逆序重新放置a数组中元素的值。
a数组中元素的值在main函数中读入。
#include<
#defineN10
voidinvert(ints[],inti,intj)
if(i<
j)
{
intt=s[i];
s[i]=s[j];
s[j]=t;
invert(s,[3],j-1);
inta[N],i;
for(i=0;
i<
N;
i++)
scanf("
[4]);
/*输入a[i]*//
invert(a,0,N-1);
printf("
%d"
a[i]);
\n"
3.下面的程序通过函数average计算数组中各元素的平均值,将程序补充完整。
floataverage(inta[],intn)
inti;
floats=0;
n;
s=s+[5];
returns/[6];
inti,a[5]={2,4,6,8,10};
floatmean;
mean=average(a,5);
mean=%f\n"
mean);
五、编程题(每小题14分,共28分)
1.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
2.编程实现从键盘上输入一个字符串,把此字符串中的小写字母转换成大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。