C语言模拟题[一]

一 、选择题 (每小题 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函 数)

相关推荐
搬砖的小码农_Sky36 分钟前
C语言:结构体
c语言·数据结构
飞升不如收破烂~1 小时前
redis的map底层数据结构 分别什么时候使用哈希表(Hash Table)和压缩列表(ZipList)
算法·哈希算法
九圣残炎1 小时前
【从零开始的LeetCode-算法】3354. 使数组元素等于零
java·算法·leetcode
程序猿小柒2 小时前
leetcode hot100【LeetCode 4.寻找两个正序数组的中位数】java实现
java·算法·leetcode
雨中rain2 小时前
贪心算法(1)
算法·贪心算法
不爱学习的YY酱2 小时前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
平头哥在等你2 小时前
求一个3*3矩阵对角线元素之和
c语言·算法·矩阵
飞滕人生TYF2 小时前
动态规划 详解
算法·动态规划
_OLi_2 小时前
力扣 LeetCode 106. 从中序与后序遍历序列构造二叉树(Day9:二叉树)
数据结构·算法·leetcode
尹蓝锐3 小时前
C语言-11-18笔记
c语言