cout<<'\n';
}
}
3.统计字符串中种类字符的个数
#include
voidmain()
{
charstr[50],*p=str;
intcon=0,num=0,eng=0,oth=0;
cout<<"请输入一个字符串:
";
cin.getline(str,50);
while(*p)
{
if(*p<32)con++;
elseif(*p>='0'&&*p<='9')num++;
elseif(*p>='A'&&*p<='Z'||*p>='a'&&*p<='z')eng++;
elseoth++;
p++;
}
cout<\n";
}
4.一维数组插入有序二维数组
#include
#include
#defineROW4
#defineCOL3
voidmain()
{
inta[ROW][COL]={{1,3,2},{4,6,8},{8,9,10}},b[COL]={2,7,1};
inti,j;
cout<<"插入前的数组为:
\n";
for(i=0;i{
for(intj=0;j
cout<cout<}
for(i=0;i
{
for(j=ROW-1;j>0;j--)
if(a[j-1][i]>b[i])
a[j][i]=a[j-1][i];
elsebreak;
a[j][i]=b[i];
}
cout<<"插入后的数组为:
\n";
for(i=0;ifor(intj=0;j
cout<cout<}
}
5.二维数组正数和负数的均值
#include
voidmain(void)
{
intb[3][5]={{1,12,3,0,-2},{7,-12,-13,18},{-20,0,9,-5,7}};
floatave1=0,ave2=0;
inti,j,count1=0,count2=0,(*p)[5]=b;
for(i=0;i<3;i++)
for(j=0;j<5;j++)
{
if(p[i][j]>0)
{
ave1+=b[i][j];
count1++;
}
if(*(*(p+i)+j)<0)
{
ave2+=b[i][j];
count2++;
}
}
cout<<"正数的平均值为"<}
6.查找一维数组中的元素
#include
voidmain()
{
floata[10]={3,5,8,1,7,9,10,2,6,4};
floatk,*p=a;
cout<<"输入要查找的元素:
";cin>>k;
inti,index=-1;
for(i=0;i<10;i++)
{
if(*p==k)
{
index=i;
break;
}
p++;
}
if(index==-1)cout<\n";
elsecout<\n";
}
7.删除字符串中的指定字符
#include
#include
voidmain()
{
charstring[100],ch,*p=string;
cout<<"请输入字符串:
\n";
cin.getline(p,100);
cout<<"请输入要删除的字符:
";cin.get(ch);
while(*p)
{
if(*p==ch)
strcpy(p,p+1);
elsep++;
}
cout<<"删除字符"<\n";
cout<}
第5章函数与编译预处理
一、选择题
题号
1
2
3
4
5
6
7
8
9
10
答案
D
C
D
A
B
C
D
D
C
C
题号
11
12
13
14
15
16
17
18
19
20
答案
A
B
C
C
C
A
D
C
D
C
勘误:
15.D选项“和类型均不同”改为“或类型不同”
二、填空题
1.①值传递②地址传递③引用传递
2.inline
3.①文件包含②宏定义③条件编译
4.①形参名②函数先使用后定义
5.①形式参数②实际参数③参数类型④参数个数⑤参数顺序
6.①void②int
7.①静态存储区域②0
8.①void(*fp)(char*s,inta[])②fp=f;或(*fp)=f;
9.①sum1=5②sum2=-15
10.①s3=2.8②s1=0,s2=4,s3=2③50
11.①11②1331③31
12.①0101②010111③0
13.①12345②32145
14.①-414②-1814③-3214
15.①x=5,y=3②y=10
16.①15-1121410②267143320
17.①1a②3b③5c
18.①i+1②k=j③str[k]=str[k+1]④del(s)
19.①i++②a[j]=x③add_sort(b,x,n)④n
20.①*sum②n/=10③fun(i,&s)④i%11==0&&s==13
21.①k=j②a[i]%2!
=0③count++④on_off(a,LAMP,CHILD)
22.①str[i]②substr[k+1]=='\0'③k++④f(s1,s2)
三、编程题
1.字符排序
#include
voidsort_char(char*str)
{
char*p1,*p2,*q;
charc;
for(p1=str;*(p1+1)!
='\0';p1++){
q=p1;
for(p2=p1+1;*p2!
='\0';p2++)
if(*p2<*q)q=p2;
if(q!
=p1){
c=*p1;
*p1=*q;
*q=c;
}
}
}
voidmain()
{
chars[]="gabhdecf";
cout<<"原字符串为:
"<
sort_char(s);
cout<<"排序后的字符串为:
"<
}
2.互换前后奇数位置的元素
#include
#include
voidfun(char*str)
{
inti,j;
charc;
if(strlen(str)<3)return;
if(strlen(str)%2==0)j=strlen(str)-1;
elsej=strlen(str);
for(i=1;ic=str[i];
str[i]=str[j];
str[j]=c;
}
}
voidmain()
{
chars[]="ggoiromndno";
cout<<"原字符串为:
"<
fun(s);
cout<<"交换后的字符串为:
"<
}
3.查找自反数
#include
#include
intfun(intn)
{
inta[50];
inti=0,k=n;
while(k){
a[i]=k%10;
k/=10;
i++;
}
i--;
for(intj=0;j
if(a[j]!
=a[i])break;
if(j>=i)return1;
elsereturn0;
}
voidmain()
{
intbase,num;
cout<<"请输入基数base和需要查找的自反数的个数num:
"<cin>>base>>num;
intn=base,count=0;
while(countif(fun(n)){
cout<count++;
if(count%5==0)cout<}
n++;
}
cout<}
第6章结构体与简单链表
一、选择题
题号
1
2
3
4
5
6
7
8
9
答案
D
C
B
B
B
C
D
A
C
题号
10
11
12
13
14
15
16
17
18
答案
D
D
B
A
C
B
B
C
B
勘误:
11.其中“不正确”改为“有语法错误”
二、填空题
1.结构体变量各成员所占内存长度之和
2.①typedefnodeNODE;②NODEs1,s2;
3.delete
4.动态
5.new或delete
6.p->next->next==NULL
7.①p==head②p->next==NULL
③p0->next=p->next④deletep
⑤p0->next=p1⑥p1->next=p
8.2012
9.13431
10.gh
11.①a[i].con=0②a[i].con++③continue
12.①h1->data>=h2->data②h1!
=NULL&&h2!
=NULL
③p->next=h1④h=merge(h1,h2)
13.①head->next=p1②returnhead
③head->next=p2④p2=p2->next
14.①newNode②p->next=top
③top->next④deletep
15.①p②returnh
③p=newND④p->next=h
16.①node*h②h2->next
③temp④h2
17.①p=p->next②p1->next=p
③h=h->next④p->next=h1
18.①p->next=head②p1
|