C++程序设计课件 设计制作:徐龙琴 1
1 数组声明为 int a[3],不是数组元素 。
A)a[0] B) a[1] C) a[2] D) a[3]
2 下列语句中,能正确输出结果,C++。
A) char s[]="C++";cout<<s<<endl;
B) char s[3]="C++";cout<<s<<endl;
C) char s[3]={'C','+','+','\0'};cout<<s<<endl;
D) char s[3]={'C','+','+'};cout<<s<<endl;
3以下数组定义中, 不正确的是
A) int b[][3]={0,1,2,3};
B) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
C) int c[100][100]={0}; D) int a[2][3];
D
A
一、选择题,
B
C++程序设计课件 设计制作:徐龙琴 2
4,下列给字符数组进行初始化中, 是正确的 。
A) char s4[2][3]={"xyz","abc"};`
B) char s1[]="xyz";
C) char s3[][]={?x?,?y?,?z?};
D) char s2[3]="xyz";
5、以下选项中,不能正确赋值的是
A) char s4[]="Ctest\n123";
B) char s3[20]="Ctest";
C) char s2[]={?C?,?t?,?e?,?s?,?t?};
D) char s1[10];s1="Ctest";
E) int a[] = "string"
B
D E
C++程序设计课件 设计制作:徐龙琴 3
6、有以下程序段:
int b[3][3]={0,1,2,0,1,2,0,1,2},I,j,t=1;
for(I=0;I<3;I++)
for(j=I;j<=I;j++)
t=t+b[I][b[j][j]]; 其 t的值是
A) 1 B) 9
C) 4 D) 3
7、当调用函数时,实参是一个数组名,则向函数传送的是
A) 数组的长度
B) 数组的首地址
C) 数组每一个元素的地址
D) 数组每个元素中的值
C
B
C++程序设计课件 设计制作:徐龙琴 4
8,int i,x[3][3] = {1,2,3,4,5,6,7,8,9};
for(i = 0;i < 3;i ++)
printf(“%d,,x[i][2 -i]); 其输出结果是 ____。
a,1 5 9 b,1 4 7
c,3 5 7 d,3 6 9
9、在 C++语言中,数组下标的数据类型允许是 ____。
a.只能整型常量
b.只能整型表达式
c.整型常量或整型表达式
d.任何类型的表达式
C
C
C++程序设计课件 设计制作:徐龙琴 5
10、下面程序的运行结果是 ____。
char c[5] = {'a','b','\0','c','\0'};
printf("%s",c);
a,'a? 'b'
b.ab
c.ab c
d.以上三个答案均有错误
B
C++程序设计课件 设计制作:徐龙琴 6
二 下列程序有无错误:
1,#include<iostream.h>
#include<string.h>
void main()
{ int a[]={1,2,3,4,5};
cout<<a<<endl;
}
for(int i=0;i<5;i++)
cout<<"a["<<i<<"]="<<a[i]<<'\t';

C++程序设计课件 设计制作:徐龙琴 7
2,#include<iostream.h>
#include<string.h>
void main()
{char oripassword[]="1234";
char userpassword[10];
cout<<"Input your password:";
cin>>userpassword;
if(userpassword==oripassword)
cout<<"欢迎进入 !\n";
else
cout<<"非法用户 !\n";}
if(strcm (u erpassword,oripassword)==0)。
C++程序设计课件 设计制作:徐龙琴 8
3,#include <iostream.h>
double avg(double,int);
void main()
{ double math[4]={78.5,44.3,99.5,72.6};
double chem[6]={88,65.5,79.8,88.4,84.6,92};
cout<<"average of math="<<avg(math,4)<<endl;
cout<<"average of chem="<<avg(chem,6)<<endl;}
double avg(double score[],int n)
{ int i;
double sum=score[0];
for(i=1;i<n;i++) sum+=score[i];
return sum/n;}
double avg(double[],int);
C++程序设计课件 设计制作:徐龙琴 9
三 程序填空题:
1.程序读入 20个整数,统计非负数个数,并计算非负数之和。
#include <stdio.h>
void main(void)
{ int i,a[20],s,count;
s = count = 0;
for(i = 0;i < 20;i ++)
scanf("%d",);
for(i = 0;i < 20;i ++)
{ if(a[i] < 0);
s += a[i];
count ++; }
printf("s = %d\t count = %d\n",s,count);}
&a[i]
continue
C++程序设计课件 设计制作:徐龙琴 10
2,以下程序将数组中的数据按逆序存放。
#include<stdio.h>
void main()
{ int a[12],i,j,t;
for(i=0;i<12;i++) scanf("%d",&a[i]);
i=0;j=12;
while( )
{ t=a[i]; ; ;
i++; j ;}
for(i=0;i<12;i++)
printf("%3d",a[i]);
printf("\n");
}
i<j
a[i]=a[j-1] a[j-1]=t
--
C++程序设计课件 设计制作:徐龙琴 11
3 函数 index(char s[],char t[])检查字符串 s中是否包含字符串 t,
若包含,则返回 t在 s中的开始位置(下标值),否则返回 -1。
int index(char s[],char t[])
{
int i,j,k;
for(i = 0;s[i] != '\0';i ++)
{
for(j = i,k = 0; &&s[j] == t[k];j ++,k ++);
if( )
return i;
}
return -1;
}
C++程序设计课件 设计制作:徐龙琴 12
#include <iostream.h>#include <string.h>
int n1=0,n2=0,n3=0;void count(char c,char x)
{ if(c>x) n1++;else
if(c==x) n2++;else n3++;
}void main()
{char s[20],ch; int n;cout<<"input s[20]=";
cin>>s;cout<<"input ch=";
cin>>ch;n=strlen(s);
for(int i=0;i<n;i++)count(s[i],ch);
cout<<"n1="<<n1<<" n2="<<n2<<" n3="<<n3<<endl; }
1:从键盘上输入一个字符串,然后再输入一个字符,分别统
计出字符串中大于、小于和等于这个字符的字符个数。
分析,将字符串存放在字符数组 s[]中,字符存放在 ch中,然后
调用 count()函数比较 s[]中的每个字符 s[i]与 ch的大小,
若 s[i]大于 ch,n1计数; s[i]等于 ch,n2计数; s[i]小于 ch,
n3计数。在 C++语言中一个函数只能返回一个值,所以,
将 n1,n2和 n3声明为全局变量,以便在 main()函数中可
见。
C++程序设计课件 设计制作:徐龙琴 13
#include <iostream.h>
void RowSum(int A[ ][4],int nrow)
{ int sum;
for (int i = 0; i < nrow; i++)
{ sum = 0;
for(int j = 0; j < 4; j++)
sum += A[i][j];
cout << "Sum of row " << i << " is " << sum << endl;} }
void main(void)
{ int Table[3][4] = {{1,2,3,4},{2,3,4,5},{3,4,5,6}};
for (int i = 0; i < 3; i++)
{for (int j = 0; j < 4; j++)
cout << Table[i][j] << " " << endl;}
RowSum(Table,3); }
2,主函数中初始化一个矩阵并将每个元素都输出,然后调用
子函数,分别计算每一行的元素之和,将和直接存放在每
行的第一个元素中,返回主函数之后输出各行元素的和。
运行结果:
1 2 3 4
2 3 4 5
3 4 5 6
Sum of row 0 is 10
Sum of row 1 is 14
Sum of row 2 is 18
C++程序设计课件 设计制作:徐龙琴 14
#include "stdio.h"
main()
{ char pass_str[80]; /*定义字符数组 passstr*/
int i=0;
while(1)
{ clrscr();
printf("请输入密码 \n");
gets(pass_str); /*输入密码 */
if(strcmp(pass_str,“password”)!=0) /*口令错 */
printf("口令错误,按任意键继续 ");
else break; /*输入正确的密码,中止循环 */
getch();
i++;
if(i==3) exit(0); /*输入三次错误的密码,退出程序 */
}
输入正确密码所进入的程序段
}
3,简单密码检测程序
C++程序设计课件 设计制作:徐龙琴 15
4,统计字符串中每个字符出现的次数。
基本思路,开一个, 统计数组, 记录每个字符出现的次数。
关键, 每个字符 与数组中进行 统计记数 元素之间的对应关系。
根据 ASCII码 的性质,将 字符 作为 统计数组 中元素的 下标 。
#include <stdio.h>
main ( )
{ int count[128]={0}; /* 统计数组,初始化时全为 0 */
char line[200]; int k=0;
printf (” \nEnter String:” );
gets (line);
while ( line[k] != ’ \0’ ) /* 对字符个数进行统计
*/
count [ line[ k++ ] ] ++; /* 将字符作为下标 */
for (k=0; k<=127; k++) /* 输出统计结果不为 0的字符 */
if ( count[k]>0 ) printf (” %c=%d\t”,k,count[k]);
}
C++程序设计课件 设计制作:徐龙琴 16
三 编程:
1.求一个 3× 3矩阵对角线元素之和 。
2.编程求两矩阵相加 。
3.找出二维数组 {{23,435,765},{78,213,657},
{643,765,881}的鞍点
所谓, 鞍点, 是指在本行中值最大, 本列中值最小 。
4.有一已经排好序的数组 (1,4,6,9,13,19,28,40,
100)
输入一个数 5,要求按原来排序的规律将它插入到数组中 。
5.使用字符串处理库函数 strcat,编程将两个字符串连接起来
6.用数组编程实现 strcpy函数的功能, 将字符数组 s2中的全部
字符拷贝到字符数组 s1中, 拷贝时 ‘ \0?也要拷贝过去,
‘ \0?
后面的字符不拷贝 。
6.编写程序实现一个简单的加密器,实现英文字符串的加密。
加密规则如下:将字符替换成它后面的第二个字符。比如 'a?
替换成 ‘ c?,‘ C?替换成 ‘ E?,‘ z?替换成 ‘ |?。, Panda”替
换成
"Rcpfc"。