一 、选择题 (每小题 2分,共 sO分)
1.以下对 C语言函数的描述中,正确的是 ( )。
A.C程序由一个或一个以上的函数组成 B.函 数既可以嵌套定义又可以递归调用
C,函数中一定要有 retum语句 D。 主函数中调用的所有函数必须放在同一个文件中
2.把数组作为函数参数传递,以 下描述中正确的是 ( )。
A。 函数中修改数组形参的值,不会改变数组实参的值。 B.数 组参数传递的是数组长度。
C,数组参数传递的是数组地址。 D.数 组参数传递的是数组中所有数据以及数组长度。
3.下列说法中正确的是 (
)。
A.函数返回值的类型取决于函数定义时在函数首部所说明的函数类型。
B,函 数返回值的类型取决于 retum语句中表达式值的类型。
C.函数体中有几条 retum语句,函数就有几个返回值。
D.函数只有一个返回值,函 数体中只能出现一个 return语 句。
4.声 明语句 ht*Ⅸ );中 p的含义是 ( )。
A.一个用于指向一维数组的行指针 B.一 个用于指向函数的指针变量
C,一个返回值为指针类型的函数 D。 一个用于指向整型数据的指针变量
5,以 下程序的输出结果是 (
)。
#include<stdio。 h>
"tm时Ⅱ()
( iⅡ t区[l〓 (2,3,4,5);
iⅡ t s〓 1,i,*p〓 x;
for(i〓 0;κ3;"HD
s*=*(p+i);
priⅡ tfr"°/。 d\Ⅱ ",s);
return O;
)
A。 9 B. 24 C. 120 D. 14
6.以 下程序有语法错误,有关错误原因的正确说法是 ( )。
int※ );
ht maiⅡ()
{ int G=5,k;
k=※G);
return' 0' ;
)
int Kint x)
{ return x++; )
A.函数 f定义的位置不对,不能放在主函数 main()的 后面。 B.变 量名不能使用大写字母
C.函数 f中 的re仙m语句不对 D,函 数原型和函数定义不匹配
7,设有以下结构类型,并且结构体数组 student中 的元素都己有值,若要将数组 student写 到文件指针
助所指向的文件中,以 下语句错误的是 ( )。
struct st
( cⅡar Ⅱame【10l;
htⅡ um; noat s【(s];
)studeⅡ t【 601;
A.№rit∝studeⅡ t,60*sLeo义struct st9,1,fp); B.抑 rit《 studeⅡ t,sLeoftstruct sO,60,fp、
C.for C=o;i<60;⒒ +,fwrite(studeⅡ △s弦eofCstruct sO,1,fp);
D,for C=o;i<60;i+→ 3vⅡteOtudeⅡt+i,sLeoKstruct s0,1,fp);
8.以 下不是死循环的程序段是 ( )。
A。 B. C。 D,
uⅡs屯Ⅱed htIF0; fo《 iⅡ t i=1;1艹→; "t卜100; "ts《,6;
do{ whiIeα) whi1e fs) ++k; ( 卜i%100+1; ~ˉ s;
)While ck=,〓 0); if(》 100,brea△ )
9,下面函数 血n的功能是 ( )。
void fuⅡ(char*s1,char艹 s2)
( whⅡ e(芳 s2++〓*s1++); )
A,字符串连接 B。 字符串交换 c.字 符串复制 D.字 符串比较
10.假设有下面定义语旬:double aI101;double Ⅱ甜 9;则 p¨相当于是减去 ( )个 字节。
A,s△eofta) B.s弦 eoKdoubIe) c,sLeoffdoubIe*) D,sLeofrp)
11.以 下程序的输出结果是 ( )。
#iⅡ clude<stdio。 h)
ht m时Ⅱ()
( int a【 】[41〓 (1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34);
iⅡ t(*p)[41,i〓 2犭=3;
p=a+1;
priⅡ tfr"%dxⅡ9H`p+i)△));
return0;
)
A.4 B,14 c.24 D.34
12.有 如下变量定义 ,char s【I〓 "16\016"Ⅱ 贝刂sLeoKs),strleⅡ(s)的 值分别为 ( )。
A.5 6 B.6 5 c.3 4 D, 4 3
13.以 下程序 的输 出结果是 ( )。
#include<stdio。 h)
v0d fCiⅡ t*∑)
( int y=2; *x=*x*2;
printfC"o/od' 1*x);
x=&y; 艹x=*x艹2;
printfr"°/。 d,1*x);
)
ht maiⅡ()
( htFa K&x,; prht※''%d",匈 ; returⅡ o; )
A,949 B.646 c。 444 D, 666
14.以 下语句 的输 出是 ( )。
priⅡ tK"%dXn",NULL);
A.l B,△ c,0 D,bluLL的 值不确定,输 出一个不确定的整数值
15.设 有定义语句 hta卩】卩L函 数调用语旬 ※a,3);下 列四个函数声明有几个是正确的( )。
void friⅡ t a口 lsl丿Ⅱt n); void fCiⅡ t*aI3I丿 Ⅱt Ⅱ); void nσ Ⅱt a卩 l丿Ⅱt Ⅱ); void※int ca)lsl丿 Ⅱt n)
A,1 B.2 c.3 D.o
二 、填 空题 (每空 2分,共 sO分)
1.语句 iⅡ t F2,y〓9;priⅡ tK"x〓%%叱y=%%d",x,y);的 输出结果是 ( )。
2.有如下定义:char*p1,Ⅱ2,且 p1、
`指
针 己进行赋值,分别指向两个字符串,请写出比较这两个字
符串是否相等的表达式。( )
3.以 下代码段的输出结果是 ( )。
uⅡsigⅡed char x=255,y〓 ·1' ˉ'0' ;
switch("对 {
case0:pⅡⅡtnC' *0*");break;
case1:
switchryJ (
case0:priⅡ tft"*1*");break;
case1:priⅡ tff"*2*");break;
)
defauIt:printfC"*3*");
)
4.以下代码段的输出结果是 ( )。
int a=4,b=3,c=2,d〓 1,m〓2,n〓 2;
(m〓a<b)&&0=c>d);
prh双 "m〓%d,Ⅱ〓%d'1m,Ⅱ);
5.有函数调用语句如下 fu《(x,D,(a+b`,D,fabs(x+D);请 问函数 fun有 ( )个 参数。
6.执行下列程序,文件 te吱 中的内容是 ( )。 (设文件能正常打开,不考虑文件无法打开的情况。)
#iⅡ clude<stdio。h>
#include<striⅡ g。 h)
void Kchar*fname,char*so
( FILE*ⅢyⅡle;iⅡt i;
my且le〓fopeⅡσname,"w");
fo《卜09<strIen◇-》 i++)
fput《stIi],myi1Θ ;
fputcθⅡ',my丘l⑶ ;
fCIose(myⅡ le);
)
h" m时Ⅱo
( f【"test,9,"hello world");
fr"test,9,' 'heIIo");
returⅡ 0;
) -
7.有如下定义:#deⅡⅡe WIUL(D x+x ,则 执行下列语句之后 y变量的值为 ( )。
ht m=1,n〓2,贮3;iⅡ t F-MUL(m+n)女廴
8.运行以下代码段,输入为 2,2,则 输出为 ( )。
iⅡ t x,y;
if《scaⅡ※"%d%d",&x,&y,)=乇 )
printft"****Xn' ');
else
pⅡnt※"学熠栅\Ⅱ ");
9,表达式 5<6<7<8的 值是 ( )。
10.有 如下语句:int山ta[4卜 (1,2);贝刂数组元素 data[2]的 值是 ( )。
11.若有以下代码:char xls0]=(0);scanK"%s",x); printf【 "%s\Ⅱ ",x);运行时输入:This is C program。 回
车,则输出结果为 ( )。
12.有 以下代码段,则变量 y的 值是 ( )
int Kint x)
(retum(刃 1o+x%10);)
int x,y; x=4321; y=K※ ※x)));
13,请 定义一个结构体类型,类型名为 饣eenode,用 于描述二叉树的结点类型,每个结点的数据成员为字
符型。( )
14.以 下程序的功能是计算 mm=1H2"⒛H234+1⒛ 45刊 23456,在括号内填上合适的表达式,将程序补
充完整
"t maino
(
int sunl,x=0,i;
sum=( );
fo《卜1;i<=6;i++)
(
x=i+(
sum=sum+X;
)
prht叩 'sum〓%dXn"阝 um);
)
三 、程序 阅读题 (每小题 5分,共 sO分)
1,运行如下程序,若输入Happy new year!回 车,请写出输出结果。
#iⅡ clude<stdio。h)
int mmⅡ( )
( iⅡt Ⅱag;
char ch;
Ⅱag=0;
whⅡe((ch〓getcharo)!〓 ′n9)(
iKch=〓'D nag〓 o;
eIse i※Ⅱag=0)(
nag=1;
iKd阝←'z' &&ch>JaD ch〓ch-' a,+' A' ;
)
putchar(ch);
)
returⅡ 0;
)
2.请写出下列程序的输出结果。
#iⅡ Clude<stdio。h)
#iⅡ clude<striⅡ g。 h>
char*£ in(char*o
( char*p=t;
returⅡ (p十 str1en(o/2);
)
h" mⅡⅡo
{ char*s1="abCdefgh";
priⅡ 划κ"°/os\Ⅱ ",fuⅡ (s1));
prhtff"%dX△ ",fu《s1)ˉ s1);
returⅡ 0;
)
3,请写出下列程序的输出结果。
#incIude<stdio。h)
htf(int m)
( static iⅡ t k=0;
iⅡ t s=0;
fo《;k<=m;k++)s十 +;
returⅡ s;
)
ht mmn← ⒍d)
( iⅡt s〓 1;
s〓※2)十ftz);
prhtfC"%d#%d扒n△ s,Κω));
returⅡ 0;
)
4.请写出下列程序的输出结果。
#iⅡ clude<stdio。h)
#iⅡ clude<stdⅡ b。 h)
#deⅡⅡe N5
void※iⅡ t xⅡ [N】 ,iⅡ t y【⒈iⅡ t Ⅱ,iⅡ t ⅡaD
( int i犭 ;
for C〓 0;kn;i+θ
( y[门 〓xI珂 [0⒈
for C〓1;j<N;j++)
if((丑 ag)?o汀 门>x[圮 Ⅱl):0`I刂 <xⅡ]Ⅱ l))
y[门 〓IIilUl;
)
)
h吐 m疝Ⅱo
( iⅡt datalsⅡ N]〓((1,3,5,2,4),侈 ,4,6,8,10),Iˉ 1,-s,-s,-9,-9));
int*p;int i;
p〓(iⅡ t0malIocO*s龙 eoKhO);
Kdata,p卩 ,0);
fort卜 0;i【 s;i十 +,
printK"%d",p口);
returⅡ 0;
5.请写出下列程序的输出结果。
#iⅡ clude<stdio。h)
iⅡ t Kint a口 ,iⅡ t Ⅱ)
(
r(Ⅱ=△)
returⅡ 1;
if(n勹)
returⅡ olOl《=a【 11);
returⅡ @⑺,Ⅱ -l,&&0ln~2]<=a【Ⅱ-11));
)
狂"m加no
( iⅡ t xI6]=(1,3,5,7,9,11by【 61=(10,8,6,4,2,0);
priⅡ tK"%d\n"※ x,6》 ;
printK"%dXⅡ ",fry,o);
returⅡ 0;
)
6.结构体node用 来描述单项链表中的结点信息,node定 义如下:
typedef struct
(iⅡt data;
struct Ⅱode*next; )Node;
有如下函数声明:htf臼ode*head,;函 数功能是统计 head为 头指针的单链表中,d扯a数据范围在lO,100l之
间的结点的个数,请写出函数体将函数补充完整。(不允许改动函数首部),
四、编程题 (1,2,3小题每 小题 10分 ,4,5小 题每 小题 15分 ,共 ⑾ 分 )
1,数列 1,2,1,4,7,12,⒛ 。..." 具有如下特征:从第 4项开始,每一项是前三项之和,如 4=1十2+1;
7=2+1+4; 12=⒒4+7; 编写程序,输 出该数列前 ⒛ 项,要求每行输出5项 ,分 4行输出。
2.输入 2个正整数 x和 k,输 出小于等于 x的 k个最大质数,每两个数据之间用空格分隔。如果小于等于
x的质数不足 k个 ,则 按实际个数输出。
3,对称矩阵是指元素以主对角线为对称轴对应相等的矩阵 (即 第 i行第j列 的数据与第j行第 i列 的数据
相等)。 有如下代码,请将主函数补充完整,实现如下功能:对于 M行 N列矩阵,输入 M米N个数据,判
断该矩阵是否为对称矩阵,如是对称矩阵,则输出该矩阵主对角线左下方 (含主对角线)的数据,不是
对称矩阵,则 输出NO。
#def1Ⅱ e⒒压5
#denⅡe N6
int maiⅡ () (iⅡ t xIpη 【N⒈ ¨¨¨)
4.编 写一个函数判断两个整数是否为亲密数对。若 a、 b满足如下条件:a的 因子和等于 b、 b的 因子和等
于 a、 且 a不等于 b(一个数的因子不包含自己,但包含 1),则 a,b称为亲密数对。如:⒛0、 284是 一对
亲密数。并编写主函数,主函数功能如下:输入两个数 m和 n,(m<n),在 [m,n]区 间找出所有的亲密数对,
将亲密数对写入一个名为 data.tXt的 文件中,格式为每行一对亲密数,两个数据之间用逗号隔开,每行数
据的第一个数比第二个数小,文件的最后一行为[m,nl区 间内亲密数对数的数量。
5,全字母句指包含字母表中全部 %个英文字母 (不 区分大小写)的句子,常用于展示英文字体显示效果。
用函数判断一个字符串是否为全字母句,函数首部为 ht Kchar+s),参 数 s表示待判断的字符串,如 s是
全字母句,则 函数返回值为 1,否则函数返回值为 0,请将函数 f补充完整 (不 允许改动函数首部)。 并编
写主函数,实现如下功能:输入 100个 字符串,每个字符串的长度不超过 gO,调 用函数 f进行全字母句的
判断,统计有一共有多少个全字母句。(说 明:本题不允许使用 虻ring山 中的 "rchr、 虻rle11函 数)