二级C语言程序设计3真题含答案与解析交互.docx
- 文档编号:11097288
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:23
- 大小:22.65KB
二级C语言程序设计3真题含答案与解析交互.docx
《二级C语言程序设计3真题含答案与解析交互.docx》由会员分享,可在线阅读,更多相关《二级C语言程序设计3真题含答案与解析交互.docx(23页珍藏版)》请在冰豆网上搜索。
二级C语言程序设计3真题含答案与解析交互
二级C语言程序设计-3
(总分100,做题时间90分钟)
一、选择题
1.
C语言中的简单数据类型有
∙A.整型、实型、逻辑型
∙B.整型、实型、字符型
∙C.整型、字符型、逻辑型
∙D.整型、实型、逻辑型、字符型
A B C D
分值:
2
答案:
B
2.
C语言中,字符(char)型数据在微机内存中的存储形式是
∙A.反码
∙B.补码
∙**码
**码
A B C D
分值:
2
答案:
D
3.
设有定义语句:
chara='\72';,则变量a
∙A.包含1个字符
∙B.包含2个字符
∙C.包含3个字符
∙D.定义不合法
A B C D
分值:
2
答案:
A
4.
C语言中,下列不合法的字符常量是
∙A.'\xff'
∙B.'\65'
∙C.'&'
∙D.'\028'
A B C D
分值:
2
答案:
D
5.
C语言中,下列不合法的字符串常量是
∙A."\121"
∙B.'y='
∙C."\n\n"
∙D."ABCD\x6d"
A B C D
分值:
2
答案:
B
6.
判断char型变量c是否为大写字母的最简单且正确的表达式是
∙A.'A'<=c<='Z'
∙B.(c>='A')‖(c<='Z')
∙C.('A'<=c)AND('Z'>=c)
∙D.(c>='A')&&(c<='Z')
A B C D
分值:
2
答案:
D
7.
有以下程序:
#include<stdio.h>
main()
{charc1='A',c2='Y';
printf("%d,%d\n",c1,c2);
}
程序的输出结果是
∙A.因输出格式不合法,无正确输出
∙**,90
∙**,Y
**,89
A B C D
分值:
2
答案:
D
8.
有以下程序:
#include<stdio.h>
main()
{ charx='A';
x=(x>='A'&&x<='Z')?
(x+32):
x;
printf("%c\n",x);
程序的输出结果是
∙**
∙**
∙**
**
A B C D
分值:
2
答案:
B
9.
有以下程序:
#include<stdio.h>
main()
{ charch;
ch='A'+'5'-'3';
printf("%d,%c\n",ch,ch);
}
程序的输出结果是
∙**,C
∙**,C
∙**,D
D.不确定的值
A B C D
分值:
2
答案:
A
10.
有以下程序:
#include<stdio.h>
main()
{ intc;
while((c=getchar())!
='\n')
{ switch(c-'2')
{ case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
}printf("\n");
}
从第一列开始输入数据:
2473<CR>,<CR>代表Enter键,程序的输出结果是
∙**
∙**
∙**
**
A B C D
分值:
2
答案:
A
11.
若变量已正确定义,要求用语句:
scanf("%f%c%f%c",&a,&c1,&b,&c2);给c1赋予字符%,给c2赋予字符#,给a赋予2.0,给b赋予4.0,则正确的输入形式是(代表空格,<CR>代表Enter键)
A.2.0%4.0#<CR>
B.2.0%4.0#<CR>
C.2%4#<CR>
D.2%4#<CR>
A B C D
分值:
2
答案:
C
12.
以下叙述中正确的是
∙**语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
∙**语言程序总是从main()函数开始执行
**语言程序中的main()函数必须放在程序的开始部分
A B C D
分值:
2
答案:
C
13.
已定义了以下函数
fff(floatx)
{printf("%d\n",x*x);}
该函数的类型是
∙A.与参数x的类型相同
∙**类型
∙**类型
D.无法确定
A B C D
分值:
2
答案:
C
14.
有函数调用语句:
func((exp1,exp2),(exp3,exp4,exp5));,此函数调用语句含有的实参个数是
∙**
∙**
∙**
**
A B C D
分值:
2
答案:
B
15.
有以下程序:
#include<stdio.h>
intfunc(inta,intb)
{ intc;
c=a+b;returnc;
}
main()
{ intx=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);printf("%d\n",r)
}
程序的输出结果是
∙**
∙**
∙**
**
A B C D
分值:
2
答案:
C
16.
有以下程序:
#include<stdio.h>
intf(int,int);
main()
{ inti=2,p;
p=f(i,i+1);printf("%d\n",p);
}
intf(inta,intb)
{ intc;
c=a;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);
}
程序的输出结果是
∙A.-1
∙**
∙**
**
A B C D
分值:
2
答案:
A
17.
有以下程序:
#include<stdio.h>
intfun(inta,intb,intc)
{ c=a*b; }
main()
{ intc;
fun(2,3,c);printf("%d\n",c);
}
程序的输出结果是
∙**
∙**
∙**
D.无定值
A B C D
分值:
2
答案:
D
18.
有以下程序:
#include<stdio.h>
doublef(intn)
{ inti;doubles;
s=1.0;
for(i=1;i<=n;i++)s+=1.0/i;
returns;
}
main()
{ inti,m=3;doublea=0.0;
for(i=0;i<m;i++)a+=f(i);
printf("%f\n",a);
}
程序的输出结果是
∙**
∙**
∙**
**
A B C D
分值:
2
答案:
A
二、填空题
1.
C语言中,字符在内存中占______个字节。
分值:
2
答案:
一
2.
调用C语言提供的对字符进行处理的库函数时,在#include命令行中应包含的头文件是______。
分值:
2
答案:
ctype.h
3.
若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是______。
while(ch=getchar()=='A');
分值:
2
答案:
0
4.
若变量已正确定义,要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入整数10、20、30、40,正确的输入形式是______,请用<CR>代表Enter键。
scanf("%d%c%d%c%d%c%d%c",&w,&a,&x,&b,&y,&c,&z,&d);
分值:
2
答案:
10A<CR>
20B<CR>
30C<CR>
40D<CR>
或:
10A20B30C40D<CR>
5.
若有以下定义和输入语句,要求给c1、c2分别输入字符A和8,给a1、a2分别输入7.29和101.298,从键盘正确输入数据的形式是______。
char c1,c2; float a1,a2;
scanf("%f%f",&a1,&a2);scanf("%c%c",&c1,&c2);
分值:
2
答案:
7.29<CR>
101.298AB<CR>
或:
7.29 101.298AB<CR>
6.
若有以下定义和输入语句,要求给c1、c2分别输入字符A和B,给a1、a2分别输入7.29和101.298从键盘正确输入数据的形式是______。
char c1,c2; float a1,a2;
scanf("%c%f%c%f",&c1,&a1,&c2,&a2);
分值:
2
答案:
(从第一列起):
A 7.29B 101.298<CR>
7.
若有以下定义和输入语句,要求给c1、c2、c3分别输入字符A、B和C,请写出从键盘正确输入数据的形式。
char c1,c2,c3;
scanf("%4c",&c1);scanf("%4c",&c2);scanf("%4c",&c3);
分值:
2
答案:
(从第一列起,代表空格):
ABC<CR>
8.
以下程序的输出结果是______。
#include<stdio.h>
unsignedfun6(unsignednum)
{ unsignedk=1;
do
{ k*=num%10; nun/=10;}
while(num);
returnk;
}
main()
{ unsignedn=26;
printf("%d\n",fun6(n));
}
分值:
2
答案:
12
9.
以下程序的输出结果是______。
#include<stdio.h>
doublesub(doublex,doubley,doublez)
{y-=1.0;z=z+x;returnz;}
main()
{doublea=2.5,b=9.0;
printf("%f\n",sub(b-a,a,a));
}
分值:
2
答案:
9.0(或9.000000)
10.
以下程序的输出结果是______。
#include<stdio.h>
intfun2(inta,intb)
{ intc;
c=(a*b)%3; returnc;
intfun1(inta,intb)
{ intc;
a+=a; b+=b; c=fun2(a,b);
returnc*c;
}
main()
{intx=11,y=19;
printf("%d\n",fun1(x,y));
}
分值:
2
答案:
4
11.
下面pi函数的功能是,根据以下公式返回满足精度ε要求的π的值。
请填空。
doublepi(doubleeps)
{doubles=0.0,t=1.0; intn;
for(______;t>eps;n++)
{s+=t;t=n*t/(2*n+1); }
return(2.0*______);
}
分值:
2
答案:
n=1 s
12.
以下函数用以求x的y次方。
请填空。
doublefun(doublex,inty)
{ inti;doublez=1.0;
for(i=1;i______;i++)z=______;
returnz;
}
分值:
2
答案:
<=y z*x
13.
以下程序的功能是计算。
请填空。
#include<stdio.h>
longf(intn)
{ inti;longs;
s=______;
for(i=1;i<=n;i++)s=______;
returns;
main()
{longs;intk,n;
scanf("%d",&n);
s=______;
for(k=0;k<=n;k++)s=s+______;
printf("%1d\n",s);
}
分值:
2
答案:
1 s*i 0 f(k)
三、程序调试和编程题
1.
请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三对。
分值:
4
答案:
while((ch=getchar())!
='\n')
{if(n%3==0)putchar('\n');
n++;printf("%c:
%d",ch,ch);
}
2.
请编写程序,输入一行数字字符(用回车结束),每个数字字符的前后都有空格。
请编程,把这一行中的数字转换成一个整数。
例如,若输入(<CR>代表Enter键):
2483<CR>
则输出整数:
2483。
分值:
4
答案:
while((ch=getchar())!
='\n')
{if(ch>='0'&&ch<='9')n=n*10+ch-'0';
}
3.
请编写程序统计输入的行数,用!
号结束输入,!
号所在行不计入行数。
分值:
4
答案:
while((ch=getchar())!
='!
')if(ch=='\n')n++;
4.
请编写程序统计输入的一行中小写字母的个数。
分值:
4
答案:
while((ch=getchar())!
='\n')
{if(ch>='a'&&ch<='z')n++;
}
5.
请编写输出以下图案的程序,图案的行数由输入的整数值确定(每行中字符之间没有空格)。
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
分值:
5
答案:
参考程序段,其中L为行数,由用户输入。
for(i=1;i<=L;i++)
{ch='A'+i-1;n=2*i-1;
for(k=L;k>=i;k--)putchar('');
for(j=1;j<=n;j++)putchar(ch);
putchar('\n');
}
6.
下面的fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正。
intfun(intn)
{intk,yes;
for(k=2;k<=n/2;k++)
if(n%k==0)yes=0;
elseyes=1;
returnyes;
}
分值:
4
答案:
for(k=2;k<=n/2;k++) if(n%k==0)return0;
return1;
7.
编写函数,根据整型形参n的值,计算如下公式的值:
分值:
4
答案:
函数中主要程序段:
for(k=1;k<=n;k++){s=-s;t=s*1.0/k;add=add+t;}。
注意,k的初值为-1,add的初值为0。
当传给形参n的值为10时,函数的返回值add应当是:
0.645635。
8.
编写函数,根据整型形参m的值,计算如下公式的值:
例如,若m=5,则应输出0.536389
分值:
5
答案:
函数的返回值为浮点型,而且函数只有一个形参,为整型。
函数的基本算法是累加,只是除第一项外其余各项都用减法。
每一项的分子都是1,分母部分为k*k,k的值逐项增1,由2变化到m。
因此,算法可以用一个循环来实现。
当m的值为12时,函数值应是:
0.435023。
9.
编写函数用以求表达式x2-5x+4的值,x作为参数传送给函数。
调用此函数求:
y1=22-5·2+4
y2=(x+15)2-5·(x+15)+4
y3=sin2x-5·sinx+4
y1的值为-2.0;x为0.5时,y2的值为166.75,y3的值为1.832721。
分值:
4
答案:
本题已给出了函数需要求值的表达式,读者只需确定函数的类型和形参的类型,就可以写出函数:
doublefun(doublex){returnx*x-5*x+4;}
窗体顶端
窗体底端
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言程序设计 真题含 答案 解析 交互