C入门习题Word文件下载.docx
《C入门习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C入门习题Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
inti=3,j=5;
swap(i,j);
i<
″″<
j<
}
voidswap(inta,intb)
inttemp;
temp=a;
a=b;
b=temp;
3.
编写函数intindex(char*s,char*t),返回字符串t在字符串s中出现的位置,如果在s中没有与t匹配的字串,就返回-1。
如输入abcdefgh和de,则字符串de在abcdefgh中左起第4个位置。
4.输入一个字符串,包含数字和非数字字符,如a232b?
21tc8756x9,将其中连续的数字作为一个整数,存放到一个数组中,如232放到a[0]中,21放到a[1]中,以此类推,统计共有多少个数子,并输出。
进阶练习4:
递归函数*
1.把以下程序中的print()函数改写为等价的递归函数。
#include<
voidprint(intw)
{
for(inti=1;
=w;
i++)
for(intj=1;
=i;
j++)
cout<
””;
voidmain(
)
print(5);
2.阅读程序,找出错误,并给出执行结果。
inti=4;
″!
=″<
fac(i)<
intfac(intn)
{staticintf=1;
f=f*n;
returnf;
3.已知一个数列为1,1,2,3,5,8…….即Fibonacci数列,这个数列有如下特点:
F1=1,F2=1,Fn=Fn-1+Fn-2(n≥3)。
通过递归函数实现求Fibonacci数列的第N项,其中N由键盘输入。
4.
使用递归函数,把任意一个正整数转化为字符串输出。
例如,输入正整数678,输出应为
“678”。
1.以下程序的输出结果是:
voidmain()
inta[9]={1,2,3,4,5,6,7,8,9};
int*p=a,sum=0;
for(;
p<
a+9;
p++)
if(*p%2==0)
sum+=*p;
”sum=”<
sum<
2.阅读程序,给出执行结果。
inti,k=0,a[10],p[3];
for(i=0;
10;
i++)
a[i]=i;
for(i=0;
3;
i++)
p[i]=a[i*(i+1)];
for(i=0;
k+=p[i]*2;
k<
3.用筛选法求出100以内的素数,存入数组a中,并输出。
4.在数组a中有10个整数从小到大有序存放,输入一个整数n,要求使用折半查找法找出n是数组a的第几个元素,若没有找到,则打印“无此数字”。
计算机技术基础模拟题(C++模拟题)
一、单项选择题(共30题):
(01)使用输入输出操作符setw,可以控制
A)输出精度
B)输出宽度
C)对齐方式
D)填充字符
(02)字符常量42、4.2、42L的数据类型分别是
A)long、double、int
B)long、float、int
C)int、double、long
D)int、float、long
(03)设x、y、z和k都是int型变量,则执行表达式:
x=(y=7,z=14,k=21)后,x的值为
A)7
B)14
C)21
D)42
(04)下列字符串中,不可以用作C++标识符的是
A)y_2005
B)_abc_h
C)Return
D)switch
(05)通过运算符重载,可以改变运算符原有的
A)操作数类型
B)操作数个数
C)优先级
D)结合性
(06)下列运算符中,不能被重载的是
A)&
&
B)!
=
C).
D)++
(07)下列关于类定义的说法中,正确的是
A)类定义中包括数据成员和函数成员的声明
B)类成员的缺省访问权限是保护的
C)数据成员必须被声明为私有的
D)成员函数只能在类体外进行定义
(08)有如下程序输出结果是
voidmain(
{
floatx=2.0,y;
if(x<
0.0)
y=0.0;
else
10.0)
y=1.0/x;
elsey=1.0;
cout<
y;
A)0.0
B)0.25
C)0.5
D)1.0
(09)下列程序的执行结果为
intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
b++;
a<
”,”<
b;
A)2,2
B)1,1
C)1,0
D)2,1
(10)执行下列语句段后,输出字符“*”的个数是
for(inti=50;
i>
1;
--i)cout<
'
*'
;
A)48
B)49
C)50
D)51
(11)有如下函数定义:
voidfunc(inta,int&
b){a++;
若执行代码段:
intx=0,y=1;
func(x,y);
则变量x和y的值分别是
A)0和1
B)1和1
C)0和2
D)1和2
(12)下列程序运行的结果是:
intx=10,y=10,i;
for(i=0;
x>
8;
y=++i)
x--<
“”<
y<
“”;
A)101091
B)9876
C)10990
D)10192
(13)以下程序中,while循环的循环次数是
inti=0;
while(i<
10)
if(i<
1)continue;
if(i==5)break;
i++;
A)1
B)10
C)6
D)死循环,不能确定次数
(14)以下程序的执行结果是:
intfun(intn)
ints;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
fun(3);
A)1
B)2
C)3
D)4
(15)下列程序的输出结果是:
intx=10;
intfun(intx)
staticinta=3;
a+=x;
return(a);
)
intx=3,n;
n=fun(x);
n<
”,”;
n;
A)6,6
B)6,8
C)6,9
D)9,6
(16)关于内嵌函数,以下说法错误的是:
A)使用内嵌函数可以节省函数调用与返回时的开销,能够提高程序的运行速度.
B)内嵌函数必须在调用之前定义.
C)内嵌函数中可以存在循环结构.
D)内嵌函数必须是短小的.
(17)给出以下定义:
charx[]=”abcdefgh”;
chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’};
则正确的叙述为
A)数组x和数组y等价
B)数组x和数组y的长度相同
C)数组x的长度大于数组y的长度
D)数组x的长度小于数组y的长度化
(18)下列程序执行后的输出结果是
#defineMA(x)x*(x-1)
voidmain(
inta=1,b=2,c;
c=MA(1+a+b);
c;
A)6
B)8
C)10
D)12
(19)以下程序执行后,a的值是
inta,k=4,m=6,*p1=&
k,*p2=&
m;
a=p1==&
endl;
A)4
B)0
C)1
D)运行时出错,a无定值
(20)若有以下定义:
chars[20]=”programming”,*ps=s;
则不能代表字符o的表达式是
A)ps+2
B)s[2]
C)ps[2]
D)ps+=2,*ps
(21)以下程序的输出结果是
#include<
string.h>
char*a=“abcdefghi”;
intk;
fun(a);
a;
fun(char*s)