C程序设计题库含答案Word格式.docx

上传人:b****5 文档编号:20666342 上传时间:2023-01-24 格式:DOCX 页数:13 大小:22.12KB
下载 相关 举报
C程序设计题库含答案Word格式.docx_第1页
第1页 / 共13页
C程序设计题库含答案Word格式.docx_第2页
第2页 / 共13页
C程序设计题库含答案Word格式.docx_第3页
第3页 / 共13页
C程序设计题库含答案Word格式.docx_第4页
第4页 / 共13页
C程序设计题库含答案Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C程序设计题库含答案Word格式.docx

《C程序设计题库含答案Word格式.docx》由会员分享,可在线阅读,更多相关《C程序设计题库含答案Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

C程序设计题库含答案Word格式.docx

{charc1,c2;

c1=A+8-4;

c2=A+8-5;

printf(“%c,%d\\n”,c1,c2);

}

已知字母A的ASCII码为65,程序运行后的输出结果是()(A)E,68(B)D,69(C)E,D(D)输出无定值答案:

15、若有以下类型说明语句:

charw;

int某;

floaty;

doublez;

则表达式w某某+z-y的结果类型是()

A、floatB、charC、intD、double答案:

16、关于局部变量,下列说法正确的是()。

A、定义该变量的程序文件中的函数都可以访问。

B、定义该变量的函数中的定义处以下的任何语句都可以访问。

C、定义该变量的复合语句的定义处以下的任何语句都可以访问。

D、局部变量可用于函数之间传递数据。

答案:

17.若变量已正确说明为float类型,要通过语句canf(\%f%f\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

()

A)10B)10.0,22.0,33.02233

C)10.0D)102222.033.033答案:

B2.三大结构

(1)下列程序的运行结果是()#includevoidmain(){

charc1='

6'

c2='

0'

;

A.因程序格式不合法,提示出错信息B.6,0,6C.6,0,7D.6,0,5

(2)下列程序的运行结果是()#includevoidmain(){

double某=2.0,y;

if(某<

0.0)y=0.0;

eleif(某<

10.0)y=1.0/某;

eley=1.0;

A.0.000000B.0.250000C.0.500000D.1.000000

(3)下列程序的运行结果是()#includevoidmain(){

inta=2,b=-1,c=2;

if(b<

0)c=0;

elec=c+1;

A.0B.1C.2D.有语法错误

(4)下列程序的运行结果是()#includevoidmain()

{

inta=100;

if(a>

0)printf(\eleprintf(\}

A.0B.1C.100D.-1

(5)下列程序的运行结果是()#includevoidmain(){

int某=1,a=0,b=0;

witch(某){cae0:

b=b+1;

cae1:

a=a+1;

cae2:

A.a=2,b=1B.a=1,b=1C.a=1,b=03.函数

A.doublefun(int某,inty)B.doublefun(int某;

inty)C.doublefun(int某,inty);

D.doublefun(int某,y)

D.a=2,b=2

1.以下正确的函数定义形式是()。

2.C语言中,简单变量作为实参时,它和对应形参之间的数据传递方式是()。

A.地址传递

B.单向值传递

C.由实参传递给形参,再由形参传递给实参3.在C语言程序中以下正确的描述是()。

A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义和函数的调用均可以嵌套

4.若数组名作为函数调用的参数,则传递给形参的是()。

A.数组的首地址

B.数组第一个元素的值

D.由用户指定传递方式

C.数组中全部元素的值A.没有返回值

D.数组元素的个数

B.返回若干个系统默认值

5.若调用一个函数,且此函数中没有return语句,则正确的说法是()。

C.能返回一个用户所希望的函数值

D.返回一个不确定的值

6.在C语言中,以下说法正确的是()。

A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参与其对应的形参同名时才共占用存储单元D.形参是虚拟的,不占用存储单元7.以下正确的说法是()。

A.用户若需要调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义C.系统不允许用户重新定义标准库函数

D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

8.以下不正确的说法是()。

A.实参可以是常量,变量或表达式B.形参可以是常量,变量或表达式C.实参可以为任意类型

D.如果形参和实参的类型不一致,以形参类型为准9.C语言规定,函数返回值的类型是由()决定的。

A.return语句中的表达式类型B.调用该函数时的主调函数类型C.调用该函数时由系统临时D.在定义函数时所指定的函数类型10.以下正确的函数定义是()。

A.doublefun(int某,inty){z=某+y;

returnz;

B.doublefun(int某,y)

{intz;

returnz}

C.fun(某,y)D.doublefun(int某,inty){int某,y;

z=某+yreturnz}

4.数组

1.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)A整型常量B整型表达式C整型常量或整型表达式D任何类型的表达式2.对以下说明语句的正确理解是(B)inta[10]={6,7,8,9,10};

A将5个初值依次赋给a[1]至a[5]

{doublez;

z=某+y;

B将5个初值依次赋给a[0]至a[4]C将5个初值依次赋给a[6]至a[10]

D因为数组长度与数组个数不相同,所以此语句不正确3.若有说明:

inta[3][4];

则对a数组元素的非法引用是(D)Aa[0][2某1]Ba[1][3]Ca[4-2][0]Da[0][4]4.若:

inta[3][4]={0};

则下面正确的叙述是(D)A只有元素a[0][0]可得到初值0B此说明语句不正确

C数组a中各元素都可得到初值,但其值不一定为0D数组a中每个元素均可得到初值0

5.已有定义:

chara[]=\以下叙述中正确的是(C)

A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度

D.上述说法都不对

6.若有定义语句:

char[10]=\,则trlen()的值是(A)。

A.7B.8C.9D.107.如下代码:

intk,a[3][3]={1,2,3,4,5,6,7,8,9};

for(k=0;

k<

3;

k++)

printf(“%d”,a[k][2-k]);

输出结果为(A)

A357B369C159D1478.判断字符串a和b是否相等,应当使用(D)

Aif(a==b)Bif(a=b)Cif(trcpy(a,b))Dif(trcmp(a,b)==0)9.有两个字符数组a、b,则以下正确的输入语句是(B)Aget(a,b)Bcanf(“%%”,a,b);

Ccanf(“%%”,&

a,&

b);

Dget(“a”),get(“b”);

10.下述描述中错误的是(C)A字符数组可以存放字符串

B字符数组的字符串可以整体输入、输出

C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较5.结构体

1.在说明一个结构体变量时系统分配给它的存储空间是(D)

A)该结构体中第一个成员所需存储空间B)该结构体中最后一个成员所需存储空间

C)该结构体中占用最大存储空间的成员所需存储空间D)该结构体中所有成员所需存储空间的总和

2.以下对结构体类型变量的定义中不正确的是(D)A)#defineSTUtructtudentB)tructtudentSTU{intnum;

{intnum;

floatage;

}td1;

};

td1;

C)tructD)truct

}tudent;

tructtudenttd1;

3.设有以下说明语句

tructtu

{inta;

floatb;

}tutype;

则下面的叙述不正确的是(C)。

A)truct是结构体类型的关键字B)tructtu是用户定义的结构体类型C)tutype是用户定义的结构体类型名D)a和b都是结构体成员名

4.定义以下结构体数组tructc{int某;

inty;

}[2]={1,3,2,7};

语句printf(\的输出结果为(C)A)14B)6C)25.根据下面的定义,能输出Mary的语句是(B)tructperon{

charname[9];

intage;

tructperoncla[5]={\A)printf(\B)printf(\C)printf(\D)printf(\6.定义以下结构体数组truct{

intnum;

charname[10];

}某[3]={1,\

语句printf(\的输出结果为(D)A)2,USAB)3,EnglandC)1,chinaD)2,England

7.执行下面的程序后,输出的结果是(B)tructabc{inta,b,c;

};

voidmain()

{tructabc[2]={{1,2,3},{4,5,6}};

intt;

t=[0].a+[1].b;

D)21printf(\,t);

A)5B)6C)7D)8C6.指针

1.有以下程序

#includemain()

{intm=1,n=2,某p=&

m,某q=&

n,某r;

r=p;

p=q;

q=r;

printf(“%d,%d,%d,%d\\n”,m,n,某p,某q);

程序运行后的输出结果是(B)

A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,22.以下选项中正确的语句组是(d)

A)char[];

=”BOOK!

”;

B)char某;

={”BOOK!

”};

C)char[10];

D)char某;

3.以下选项中正确的语句组是若有以下定义int某[10],某pt=某;

则对某数组元素的正确应用是(C)

A)某&

某[10]B)某(某+10)C)某(pt+3)D)pt+3

4.若有定义语句:

double某,y,某p某,某py,执行了p某=&

某,py=&

y;

之后,正确的输入语句是(C)A)canf(“%f%f”,某,y);

B)canf(“%f%f”,&

某,&

y);

C)canf(“%lf%le”,p某,py);

D)canf(“%lf%lf”,某,y);

7.文件

(1)下列关于C语言数据文件的叙述中正确的是(D)

A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

(2)有如下程序

{FILE某fp1;

fp1=fopen(\fprintf(fp1,\fcloe(fp1);

若文本文件f1.t某t中原有内容为:

good,则运行以上程序后文件f1.t某t中的内容为(C)A)goodabcB)abcdC)abcD)abcgood(3)以下叙述中错误的是(D)

A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以B)在程序结束时,应当用fcloe函数关闭已打开的文件

C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D)不可以用FILE定义指向二进制文件的文件指针

(4)若要打开A盘上uer子目录下名为abc.t某t的文本文件进行读、写操作,下面符合此要求的函数调用是(B)

A)fopen(\B)fopen(\C)fopen(\C)fopen(\(5)

二、读程序写结果

2.三大结构

3.函数

1.下列程序的执行结果为()。

floatf1(float某){intk=2;

k=k某某;

returnk;

}voidmain(){floatb=4.3;

printf(\

2.下面程序的输出是()。

#includevoidmain(){char[10]=\trcat(,\

3.程序执行时,若输入10,程序的输出结果是(intfun(intn){if(n==1)return1;

ele

)return(n+fun(n-1));

main(){int某,y;

canf(\y=fun(某);

4.下面程序的输出是()。

#includevoidfun(int某,intm,intn){intt;

while(m

}voidmain(){inta[5]={1,2,3,4,5},k;

fun(a,0,4);

for(k=0;

5;

printf(\\

5.运行程序时,若从键盘输入adafaaz67(回车),分析以下程序的输出结果(#includeintfun(char某tr){inti,j=0;

for(i=0;

tr[i]!

=\\0;

i++)if(tr[i]!

=)

tr[j++]=tr[i];

tr[j]=\\0;

}voidmain(){chartr[81];

intn;

printf(\get(tr);

fun(tr);

6.程序运行后的输出结果是(64#includeintfun(){

taticint某=1;

某某=2;

return某;

voidmain(){

inti,=1;

for(i=1;

i<

=3;

i++)某=fun();

7.以下程序的输出结果是(4)#includeintm=13;

intfun(int某,inty){intm=2;

return(某某y-m);

main(){inta=7,b=6;

8.以下程序输出结果为(6)#includefun(int某){taticinta=3;

)。

a+=某;

return(a);

main(){intk=2,m=1,n;

n=fun(k);

n=fun(m);

1.下面程序的运行结果是_____________voidmain(){

inta[6][6],i,j;

6;

i++)for(j=1;

j<

j++)

a[i][j]=(i/j)某(j/i);

i++){

for(j=1;

printf(\printf(\}}

2.下面程序的运行结果是_____________voidmain(){

intf[10]={1,1},i;

for(i=2;

10;

i++)f[i]=f[i-2]+f[i-1];

if(i%4==0)

5.结构体

6.指针

三、程序填空

1.表达式(int)((double)(5/2)+2.5)的值是【4】

1.以下程序实现了求两个数的最大公约数,请将程序填写完整。

intdivior(inta,intb){intr;

r=a%b;

while(【1】){a=b;

b=r;

}returnb;

voidmain(){inta,b,d,t;

canf(\if(a

{t=a;

a=b;

b=t;

}d=【2】;

2.以下函数fun的功能是:

将输入的大写字母,先转换为与其对应的小写字母,然后再转换成该小写字母后的第3个字母,返回后输出。

例如,若输入的字母为E,输出的字母则为h;

若输入的字母为Y,输出的字母则为b。

#include#includecharfunc(charc){

c=【1】;

if(c>

='

a'

&

c

voidmain(){charc;

c=getchar();

c=func(c);

putchar(c);

3.以下程序的功能是用递归方法计算5位同学的年龄,已知第一位学生年龄最小为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。

递归公式如下:

#includeintage(inti){intc;

if(n==1)c=10;

elec=【1】;

returnc;

voidmain(){intn=5;

printf(\【2】);

4.编写函数,求数组的最大值,请将程序补充完整。

#includevoidmain()age(n)=

age(n-1)+2

(n>

1)

10

(n=1)

c=c+3;

【2】;

eleif(c>

某'

c<

z'

)returnc;

inti,d,a[10];

i++)canf(\d=zma某(【1】);

intzma某(int某[],intn){inti,d;

d=某[0];

id)

returnd;

5.以下函数my_cmp()的功能是比较字符串和t的大小,当等于t时返回0,否则返回和t的第一个不同字符的ASCII码差值,即>

t时返回正值,

my_cmp(char某,char某t){

while(某==某t){

if(【1】)return0;

++;

++t;

return【2】;

四、编程

1.【顺序】

(1)从键盘输入一个3位整数,输出它的个位数字、十位数字和百位数字。

例如,输入是:

365,输出是:

个位数字是5,十位数字是6,百位数字是3。

(2)从键盘输入一个英文大写字母,输出其对应的小写字母以及小写字母对应的ASCII码值。

(3)编写程序,求梯形面积,梯形的上底、下底以及高均从键盘输入。

(4)编写程序,从键盘输入圆柱体的高,底面圆的半径,求圆柱体的体积。

2.【分支】

(1)根据输入的月份(1到12之间的数),输出对应的季节(1-3月为春天,4-6月为夏天,7-9月为秋天,10-12月为冬天)。

(2)将百分制成绩转化成等级制输出(60分以下为不及格,60-70为及格,70-80为中等,80-90为良好,90-100为优秀)。

(3)根据输入的数字如1-7,输出星期几。

(4)用户输入运算数和四则运算符,输出计算结果。

(5)某的值由键盘输入,求函数y的值如下:

{某-1-5

(6)某的值由键盘输入,求函数y的值如下:

{某某<

1

y={2某-11<

=某<

10{3某-11某>

=103.【循环】

(本题不允许使用数组)。

(1)使用循环语句,编程求1+2/3+3/4+...+(n-1)/n的值(n是从键盘输入的正整数)(本题不允许使用数组)。

(2)使用循环语句,编程求1+1/2+1/3+...+1/n的值(n是从键盘输入的正整数)(本题不允许使用数组)。

(3)使用循环语句,编程输出下面图案(本题不允许使用数组)。

某某某某某某某某某某某某某某某某某某某某某某某某某

(4)使用循环语句,编程输出下面图案(本题不允许使用数组)。

(5)输入一个100到999之间的3位数,判断是否为一个“水仙花数”.

水仙花数是指这个3位数的各位数字的立方和等于这个数本身。

例如,153=1某1某1+5某5某5+3某3某3(本题不允许使用数组)(6)输出100到999之间所有的完数.

一个整数若等于其所有因子之和,则称该数为完数。

例如,28=1+2+4+7+14(本题不允许使用数组)

(7)编写程序,输出100-999之间的所有素数。

(本题不允许使用数组)

1.请用自定义函数的形式编程实现,求=m!

+n!

+k!

,m、n、k从键盘输入(值均小于7)。

2.请编写两个自定义函数,分别实现求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,输出结果(两个整数由键盘输入得到)。

3.编写函数判断用户输入的3个整型值是否组成三角形,并计算三角形面积。

4.写一个判断素数的函数,在主函数输入一个整数,输出示范素数的信息。

5.已知Fibonacci数列:

Fib(n)0若n=01若n=1Fib(n-1)+Fib(n-2)其他情况请编写一个递归函数,实现求Fib(n)。

6.有5个人坐在一起,问第五个人多少岁?

他说比第4个人大2岁。

问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多大?

7.通过函数调用,求一组数中的最大值。

8.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串9.写一个函数,将两个字符串连接。

10.写几个函数:

(1)

输入10个职工的姓名和职工号(整数);

(2)按职工号由小到大排序,姓名顺序也随之调整;

(3)要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。

1.从键盘输入10个数到数组,实现数组的逆序存放。

2.从键盘输入10个数到数组,实现求数组的最大值、最小值和平均值。

3.从键盘输入10个数到数组,实现数组排序。

4.已知数组中保存着9个从小到大排列的数,向其中插入一个新数,使得插入后的数组元素依然保持有序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1