C语言数组_c语言中数组
C语言数组由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言中数组”。
实验九 数组一、一维数组
1、编写程序,测试下列数组的定义方式是否正确(1)main(){ int n;scanf(“%d”,&n);int a[n];//…….}(2)main(){ int n=10;int a[n];a[0] = 1;//......}(3)#include #define M 10 main(v){ int a[M];a[0] = 1;//......}(4)main(){ int a[2+2*4];a[0] = 1;//......}(5)#include #define M 2 #define N 8 main(){ int a[M+N];a[0] = 1;//......} 通过这一实验,可以说明什么问题?
2、运行下面的C程序,根据运行结果,可以说明什么? #include void main(void){ int num[5]={1,2,3,4,5};int i;for(i=0;i
3、调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。main(){ int i,n,a[10],av;
for(i=0;i
for(i=0;i
if(i%3= =0)printf(“n”);
} for(i=0;i!=n;i++)av+=a[i];
printf(“av=%fn”,av); }
//尤其注意最后一次循环 上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。在程序运行过程中,可以使用+键终止程序的运行,返回到TC环境。
5、编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。分析讨论
通过实验,分析定义与引用数组的区别。二、二维数组
1.写出程序输出结果(1)#include”stdio.h” main(){ int i, j, t, a[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42};for(i=0;i
for(j=0;j
} }(2)#include”stdio.h” main(){int i,j,m,n,a[3][4]={43,32,22,13,11,22,33,44,44,11,32,31};m=n=0;for(i=0;ia[i][j]){m=i;n=j;} printf(“a[m][n]=%d,m=%d,n=%d”,a[m][n],m,n);}
3、操作符&用以求一个变量的地址,这在函数scanf 中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。
4、输入4×4的数组,编写程序实现: ⑴ 求出对角线上各元素的和;
⑵ 求出对角线上行、列下标均为偶数的各元素的积; ⑶ 找出对角线上其值最大的元素和它在数组中的位置。
三、字符数组
1.验证程序输出结果 #include”stdio.h” main(){char a[ ]=“ab12cd34ef”;int i, j;for(i=j=0;a[i ];i++)if(a[ i]>=’a’&&a[ i]
printf(“%sn”,a);}
2、编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。以“stop”作为输入的最后一个字符串。
3、1983 年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX 的鼻祖,C语言的创始人之一,图林大奖得主,Ken Thompson 上台的第一句话是:“我是一个程序员,在我的1040表上我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序如下: #include char s[]={'t', '0', 'n', '}', ';', 'n', 'n', '/', '*', 'n', 0 };/*(213 lines deleted)*/ /* * The string is a * representation of the body * of this program from '0' * to the end */ void main(void){ int i;printf(“char ts[]= {” “);for(i=0;s[i];i++){ printf(”t%d,n“, s[i]);} printf(”%s“, s);} 请上机运行这个程序,指出它的功能和运行结果。
1.以下为一维整型数组a的正确说明是_________.a)int a(10);b)int n=10,a[n];c)int n;d)#define SIZE 10;scanf(”%d“,&n);int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.a)int a[3][];b)float a(3,4);
c)double a[1][4] d)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。)a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+1 4.若二维数组a有m列,则在a[i][j]前的元素个数为________.a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1 5.若有以下程序段:
int a[]={4,0,2,3,1},i,j,t;for(i=1;i=0&&t>a[j]){a[j+1]=a[j];j--;} a[j+1]=t;}......则该程序段的功能是_________.a)对数组a进行插入排序(升序)b)对数组a进行插入排序(降序)c)对数组a进行选择排序(升序)d)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.a)gets(a,b);b)scanf(”%s%s“,a,b);c)scanf(”%s%s“,&a,&b);d)gets(”a“),gets(”b“);7.下面程序段的运行结果是_________.char a[7]=”abcdef“;char b[4]=”ABC“;strcpy(a,b);printf(”%c“,a[5]);a)空格 b) c)e d)f 8.判断字符串s1是否大于字符串s2,应当使用_______.a)if(s1>s2)b)if(strcmp(s1,s2))c)if(strcmp(s2,s1)>0)d)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用 空格分隔,请选择填空。
#include main(){ char s[80],c1,c2=' ';int i=0,num=0;gets(s);while(s[i]!=' '){c1=s[i];if(i==0)c2=' ';else c2=s[i-1];if(___)num++ i++;} printf(”There are %d words.n“,num);} a)c1==' '&&c2==' ' b)c1!=' '&&c2==' ' c)c1==' '&&c2!=' ' d)c1!=' '&&c2!=' ' 10.下面程序的运行结果是________.#include main(){char str[]=”SSSWLIA“,c;int k;for(k=2;(c=str[k])!=' ';k++){switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;} putchar('*');} }
a)SSW* b)SW* c)SW*A d)SW
二、填空题
1. 若有定义:double x[3][5];则x数组中行下标的下限为____0___,列下标的上限为___4____.2.下面程序以每行4个数据的形式输出a数组,请填空。
#define N 20 main(){int a[N],i;for(i=0;i
main(){ int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i
a[i]=y%2;i++;y=u;}while(y>=1)for(j=i-1;j>=0;j--)printf(”%d“,a[j]);} 5.下面程序用插入法对数组a进行降序排序。请填空。
main(){int a[5]={4,7,2,5,1};int i,j,m;for(i=1;i
while(j>=0&&m>a[j]){a[j+1]=a[j]_______;j--;} a[j+1]_______=m;} for(i=0;i #include main(){ char s[20],str[3][20];int i;for(i=0;i main(){char s[]=”ABCCDA";int k;char c;for(k=1;(c=s[k])!=' ';k++){switch(c){case 'A':putchar('%');continue;case 'B':++k;break;default:putchar('*');case 'C':putchar('&');continue;} putchar('#');} }
学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验三 数组一、实验目的1、掌握一维和二维数组的定义、赋值和输入输出2......
实习六:数组实习姓名:尹思智学号:2012014413 完成日期2013年4月一、实习目的1.从键盘输入10个整数,将最大数调到最前面,最小数调到最后面。 2.已有一个已排好序的数组,今输入一个......
C语言实验书P37(2)#includeint main(void){int i;char ch;char str[100];printf("请输入字符串:\n");scanf("%s", str);printf("请输入查找字符:\n");scanf(" %c",......
数组方法总结1.输入元素的值:inti,a [10];for ( i = 0; i a[i] = i;(1) 正序排列:(2)倒序排列:for( i =0; i = 0; i -- ) printf (“%d”, a[i]);printf(“%d”, a[i]);2.初始......
C语言程序设计 数组补充实验一、实验目的1、掌握一维数组和二维数组的定义、赋值和输入输出的方法。2、掌握字符数组和字符串函数的使用。3、掌握与数组有关的算法(排序算法......
