C语言程序设计-第7章
- 格式:ppt
- 大小:218.00 KB
- 文档页数:17


第7章 数组
【练习 7-1】将例 7—3 程序中的 break 语句去掉,输出结果有变化吗?假设输入数据不变,输出什么?
解答:
当去掉 break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为 x 的元素,因
此程序输出会有变化。当输入数据仍为 2 9 8 1 9 时,输出将是 index is 1 index is 4。
【练习7—2】将数组中的数逆序存放.输入一个正整数n(1
解答:
#include
int main(void)
{
int i,n,temp;
int a[10];
printf("Input n:");
scanf(”%d",&n);
printf(”Input %d integer:",n);
for(i=0;i
scanf(”%d”,&a[i]);
printf(”After reversed:");
for(i=0;i〈n/2;i++){
temp=a[i];
a[i]=a[n—1—i];
a[n-1—i]=temp;
}
for(i=0;i〈n;i++)
printf("%d ”,a[i]);
return 0;
}
【练习7-3】求最大值及其下标.输入一个正整数n(1〈n<=10),再输入n个整数,存入数组a中,将先数组a中的这n个数逆序存放,在按顺序输出数组a中的n各元素.试编写相应程序.
解答:
#include〈stdio.h>
int main(void)
{
int i,index,n;
int a[10];
printf("Enter n:”);
scanf(”%d",&n);
printf(”Enter %d integrs:”,n);
for(i=0;i〈n;i++)
scanf("%d",&a[i]);
for(i=n—1;i〉=0;i++)
printf("%d ”,a[i]);
习 题 一
一、选择题
1.C程序的基本单位是( A)。
A.函数 B.文件 C.语句 D.字符
2.C程序中的变量(B )。
A.不用说明 B.先说明后引用
C.先引用后说明 D.引用和说明顺序无关
3.变量的说明在(B )。
A.执行语句之后 B.执行语句之前
C.执行语句当中 D.位置无关
4.C语言是一种( C)。
A.机器语言 B.符号语言
C.高级语言 D.面向对象的语言
二、填空题
1.一个C程序总是从 主函数 开始执行。
2.结构化程序由 顺序 、 选择 、 循环 三种基本结构构成。
3.一个C程序只有一个名为 main 的主函数。
4.C程序中的每个语句以 分号 结束。
5.C程序中,函数由 函数首部 和 函数体 组成。
6.每个基本结构有 一个 入口和 一个 出口,没有 死循环 和 死语句 。
7.算法是 计算机解决问题所依据的步骤。
习 题 二
一、选择题
1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'
2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.2
3.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.4
4.在C语言中,合法的长整型常数是 ( B)。
A.568701400 B.0L C.0.03546287 D.2.654e11
5.char型常量在内存中存放的是( A)。
A.ASCII代码值 B.BCD代码值
C.十进制代码值 D.内码值
6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.β D.b_4
C语言程序设计课堂练习题
第7章 指针
一、选择题
1.已知p是一个整型指针变量,且p指向的是整型变量a的地址,则下列哪个语句是错误的?( )
A.*p=a; B. p=&a; C.p=&*p; D.p=*&p;
2.下列哪一项是不正确的字符串赋值或不正确的赋初值的方式?()
A. char *str;str=“string“; B.char str[7]={‟s‟, ‟t‟, ‟r‟, ‟i‟, ‟n‟, ‟g‟ };
C. char str1[10];str1= “string“; D.char str1[]=“string“,*str2=”1234567”;
3.对于类型相同的指针变量,不能进行()运算。
A. + B. - C. = D.==
4.已知p是一个整型指针变量,a为一个一维整型数组,且p=a;则下列哪个语句是错误的?()
A.*p=a[0]; B. *p=*a; C. p=a+1; D.p=*a;
5.若有以下说明语句,则p2-p1的值为()
int a[10],*p1,*p2;
p1=a;
p2=&a[5];
A. 5 B. 6 C. 10 D.没有指针与指针的减法
6.下列定义中不正确的是()
A.int *p; B. int p[10]; C.int (*p)() D.int *(p(n));
7.以下程序的输出结果是()
main(){
int a[]={1,2,3,4,5,6},*p;
p=a;
printf(“%d,%d\n”,*p,*(p+4));
}
A. 0,5 B.1,5 C.0,6 D.1,6
8.若有以下说明和语句,且0<=i<10,则下面哪个不是对数组元素地址的正确表示()。
int a[]={1,2,3,4,5,6,7,8,9,10},*p,i;
/*练习7-1*/ #include main() { int a[10],n,sum=0,i; float ave; printf("enter n:\n"); scanf("%d",&n); printf("enter %d ge zheng shu:\n",n); for(i=0;i main() { int a[10],n,i; printf("enter n:\n"); scanf("%d",&n); printf("enter %d ge zheng shu:\n",n); for(i=0;i main() { int a[5],x,i,k=0; printf("enter 5 ge zheng shu:\n"); for(i=0;i<5;i++) scanf("%d",&a[i]); printf("enter x:\n"); scanf("%d",&x); for(i=0;i<5;i++) if(a[i]==x) { printf("xia biao wei : %d\n",i); k=1; } if(k==0) printf("Not Found\n"); } /*练习7-4*/ #include main() { int a[10],n,i,k=0,x,max; printf("enter n:\n"); scanf("%d",&n); printf("enter %d ge zheng shu:\n",n); for(i=0;i main() { char str[80]; int i,j,count=0; printf("输入一个以回车符结束的字符串:\n"); i=0; while((str[i]=getchar())!='\n') i++; str[i]='\0'; printf("再输入一个字符:\n"); str[80]=getchar(); for(j=0;j<=i-1;j++) if(str[80]==str[j]) count++; printf("%c字符在字符串中出现的次数为:%d\n",str[80],count); for(j=0;j<=i-1;j++) putchar(str[j]); printf("\n"); } /*习题七 1*/ #include main() { int x,y,n,a[10],i,min,max; printf("输入 n:\n"); scanf("%d",&n); printf("输入%d个整数:\n",n); for(i=0;ia[i]) min=i; max=0; for(i=1;i main() { int x,n,a[10],i,j,max; printf("输入 n:\n"); scanf("%d",&n); printf("输入%d个整数:\n",n); for(i=0;i main() { int m,n,a[6][6],i,j,b[6]={0}; printf("输入m:\n"); scanf("%d",&m); printf("输入n:\n"); scanf("%d",&n); printf("输入%d和%d的矩阵:\n",m,n); for(i=0;i main() { char str[80]; int i,j; printf("输入一个以回车符结束的字符串:\n"); i=0; while((str[i]=getchar())!='\n') i++; printf("倒序输出:\n"); for(j=i-1;j>=0;j--) putchar(str[j]); printf("\n"); } /*新7.6*/ #include main() { int a[10],i,n; printf("输入整数n:\n"); scanf("%d",&n); printf("输入%d个整数:\n",n); for(i=0;i main() { char str[80]; int i,j,count=0; printf("输入一个以回车符结束的字符串:\n"); i=0; while((str[i]=getchar())!='\n') i++; printf("输出其中的大写辅音字母:\n"); for(j=0;j<=i-1;j++) if(str[j]>='B'&&str[j]<='Z'&&str[j]!='E'&&str[j]!='I'&&str[j]!='O'&&str[j]!='U') { putchar(str[j]); count++; } printf("\n"); printf("大写辅音字母数量为:%d\n",count); } /*习题7.8*/ #include main() { char str[80]; int i,j,count=0; printf("输入一个以回车符结束的字符串:\n"); i=0; while((str[i]=getchar())!='\n') i++; printf("输出相应交换后的字符串:\n"); for(j=0;j<=i-1;j++) if(str[j]>='A'&&str[j]<='Z') str[j]=155-str[j]; for(j=0;j<=i-1;j++) putchar(str[j]); printf("\n"); }