c语言一维数组上机考试题目
- 格式:doc
- 大小:36.28 KB
- 文档页数:1
实验六数组程序设计【实验目的】1、掌握使用一维数组编程方法2、掌握使用二维数组进行程序设计【实验内容】一、上机验证程序,并分析结果要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。
1、#include <stdio.h>int main(){ int a[ ]={1,2,3,4,5} , i, j, s=0 ;j = 1;for ( i = 4 ; i>=0 ; i--){s = s+ a[i] * j ;j = j * 10 ;}printf(" s= %d \n" , s );return 0;}二、程序改错题1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。
源代码如下,程序中存在错误,请将其改正。
#include <stdio.h>int main(){int a(10);/*定义数组*/int count,i;/* i循环变量 count 正数个数*/for(i=0;i<=10;i++){/*循环输入*/scanf("%d",a[i]);}count=1;for(i=0;i<=10;i++){/*查找正数*/if(a(i)>0)count++;}printf("数组中正数有:%d个\n",count);return 0;}三编写程序1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。
#include <stdio.h>#define N 30int main(){float score[N],sum=0,aver;int i;for(i=0;i<30;i++){scanf("%f",&score[i]);sum=sum+score[i];}aver=sum/30;printf("平均分为:%.2f\n",aver);for(i=0;i<N;i++)if(score[i]>aver)printf("%.2f ",score[i]);printf("\n");return 0;}2.编写程序:假设有13位评委参与评分工作。
C 语言上机考试试题-9一、选择题(每小题2分)1. 用数组名作为函数的实参时,传递给函数的形参是________。
(A) 数组的首地址(B) 数组的第1个元素(C) 数组中的全部元素(D) 数组的元素个数2. 下列定义一维数组正确的写法是________。
(A) int a(10); (B) int n=10, a[n];(C) int n; (D) #define SIZE 10scanf(“%d”,&n); int a[SIZE];int a[n];3. 下述函数头定义形式正确的是________。
(A) int f(int x; int y) (B) int f(int x,y)(C) int f(int x, int y) (D) int f(x,y: int)4. 以“只读”方式打开文本文件c:\xy.txt,下列语句中哪一个是正确的________。
(A) fp=fopen("c:\\xy.txt","a"); (B) fp=fopen("c:\\xy.txt","r");(C) fp=fopen("c:\\xy.txt","wb"); (D) fp=fopen("c:\xy.txt","r");5. 判断变量x和y中有且只有一个值为0成立的表达式为________。
(A) !(x*y)&&x+y (B) (x*y)&&x+y(C) x*y==0 (D) x==0&&y!=06. 设有如下定义:struct ss{ char name[10];int age;char sex;} std[3],*p=std;下面各输入语句中错误的是________。
(A) scanf("%d",&(*p). age); (B) scanf("%s",&);(C) scanf("%c",&std[0].sex) (D) scanf("%c",&(p-> sex));7. 语句“int a=0; if(a=1) a+=10;” 编译不会出错,但运行后a的值是________。
实验6 一维数组实验要求:使用Visual C++ 6.0开发环境,完成以下习题。
1. (此题可不使用数组)输出1~100之间的不能被7整除的数。
(要求使用continue语句,如果其能被7整除则continue)。
源程序保存为6-1.c。
运行效果截图保存为6-1p.jpg。
2. 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。
源程序保存为6-2.c。
运行效果截图保存为6-2p.jpg。
3. 定义一个100个元素的数组,依次赋值为1 ~ 100。
先输出其中能被3整除的数。
再输出其中能被5整除的数。
(注意数组的下标是从0开始。
)源程序保存为6-3.c。
运行效果截图保存为6-3p.jpg。
4. 让用户输入学生的人数n,然后输入这n个学生的语文成绩,保存在数组中。
然后分别计算输出:(1)统计语文成绩平均分。
(2)不及格的学生序号及成绩、并统计不及格人数。
(3)最高分的成绩及最高分的学生的序号。
源程序保存为6-4.c。
运行效果截图保存为6-4p.jpg。
5. 定义一个数组A存放6个学生的高数成绩,定义一个数组B存放这6个学生的英语成绩, 再定义一个数组C存放这6个学生的C++成绩。
在输入时,要求逐个学生的三门课成绩输入(即先输入第1个学生的三门课成绩,再输入第2个学生的三门课成绩,以此类推)。
求这6个同学三科的总分存放在数组D中,并输出。
源程序保存为6-5.c。
运行效果截图保存为6-5p.jpg。
6. 编程实现:简单版成绩管理系统1。
程序首先显示菜单,让用户选择1则添加一个学生的的记录,选择2则查看一个学生的记录,选择3则修改一个学生的记录,选择4则浏览所有学生记录。
每个学生记录由其学号、高数成绩、英语成绩、C++成绩组成。
(提示:定义一个100个元素的数组,存放学生的学号;定义一个100个元素的数组存放高数成绩,定义一个100个元素的数组存放英语成绩;定义一个100个元素的数组存放C++成绩;定义一个变量记录当前已经总共添加了多少个学生)当用户选择1之后,让用户输入要添加的学生的学号、高数成绩、英语成绩、C++成绩。
维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________A) int a[10]=(0,0,0,0,0);C) int a[ ]={0}; B) int a[10]={ };D) inta[10]={ 10*2};2 、以下一维数组 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];3 、执行下面的程序段后 , 变量 k 中的值为 __________ 。
int k=3,s[2];s[0]=k;k=s[1]*10;A) 不定值B) 33C) 30 D) 104 、下列程序执行后的输出结果是main(){int a,b[5];a=0; b[0]=3;printf("%d,%d\n",b[0],b[1] );A) 3,0C) 0,3 }B) 3 0D) 3, 不定值5、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后a[1]和a[2]的值分别是_______________ 。
a[0] a[1] a[2] a[3]a[4]10 | 20 | 30 | 40 | 50|A) 20 和 30 C) 21 和 30 B) 20 和 31 D) 21 和 316、以下程序输出 a 数组中的最小值及其下标,在划线处应填入的是 _____________ main( ){ int i,p=0,a[10];for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=1;i<10;i++)if(a[i]<a[p]) ____________ ;printf("%d,%d\n",a[p],p);A) i=p C) p=j ,并输出低于平均分的学生B) a[p]=a[i]D) p=i7 、以下程序的输出结果是 ________ 。
C语言机试模拟试题一、改错题:(30分)1、求一维数组a中的值为偶数的元素之和。
#include <stdio.h>sum ( int arr[ ],int n ){ int i,s;s = 0;for ( i=0; i<n; i++)if (arr[i] % 2 == 0)/************found************/s=s+i;改为:s = s + arr[i];return (s);}void main(){ int a[10]={10,4,2,7,3,12,5,34,5,9},i,s;/************found************/s = sum( a ,2 ); 改为:s = sum( a ,10 );printf("The result is: %d\n", s);}2、求一维数组a中的值为奇数的元素之和。
#include <conio.h>#include <stdio.h>int sum( int b[ ],int n ){ int i,s = 0;for ( i=0; i<n; i++)if (b[i] % 2 == 1)/************found************/s = s + b[i] 改为:s = s + b[i];return (s);}void main(){ int a[12]={10,4,2,7,3,12,5,34,5,9,21,19},n;/************found************/n = sum(a,2); 改为:n = sum(a,12);printf("The result is :%d\n",n );}3、求二维数组a中的最大值和最小值。
#include <stdio.h>void main(){ int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;//clrscr();max = min = a[0][0];for ( i=0; i<3; i++)/************found************/for ( j=1; j<3; j++)改为:for ( j=0; j<3; j++){ if ( max < a[i][j] )max = a[i][j];/************found************/if (min < a[i][j]) 改为:if (min > a[i][j])min = a[i][j];}printf("The max is: %d\n", max);printf("The min is: %d\n", min);}4、求一维数组a中的最大元素及其下标。
第四部分数组4.1选择题1.以下关于数组的描述正确的是(c )。
A.数组的大小是固定的,但可以有不同的类型的数组元素B.数组的大小是可变的,但所有数组元素的类型必须相同C.数组的大小是固定的,所有数组元素的类型必须相同D.数组的大小是可变的,可以有不同的类型的数组元素2.以下对一维整型数组a的正确说明是(d )。
A.int a(10);C.int n;scanf("%d" ,&n);int a[n]; B. intn=10,a[n];D. #define SIZE 10inta[SIZE];3.在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。
A.整型常量B.整型表达式C,整型常量或整型表达式D.任何类型的表达式4.以下对一维数组m进行正确初始化的是(c )。
A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5,若有定义:int bb[ 8];。
则以下表达式中不能代表数组元bb[l]的地址的是(c )。
A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16,假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。
A. 3B. 6C. 10D. 207.若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是(d )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8.以下程序段给数组所有的元素输入数据,请选择正确答案填入(4 )。
#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d", );}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9.执行下面的程序段后,变量k中的值为(a )。
上机实验六一维数组班级学号姓名本次题目一共5题,必做4个,选做1个。
选做题可能有点难度,请尝试着做一下,能做出来说明目前你已经很强了!一.目的要求1.掌握一维数组的基本概念,定义和初始化方法;2.掌握一维数组的基本操作,如输入、输出、引用数组元素;3.掌握与数组有关的基本算法,如寻找最大/最小值、排序等。
二.实验内容【实验题1】程序改错:源程序用数组求Fi bona cci数列前20项,但在带标记的代码行存在错误。
源程序如下:#include<stdio.h>void main(){ int i, fib[20];fib[1]= fib[2]= 1; //错误1for(i=3; i<=20; i++) //错误2fib[i]= fib[i-1] +fib[i-2];for(i=1; i<=20; i++){ //错误3printf("%6d", fib[i]);if( (i+1)%5==0 ) printf("\n");}}数组的下标应该从几开始?标出的三个错误语句行,应分别改为?数组下标应该从0开始,错误1修改为:fib[0]= fib[1]= 1;错误2修改为:for(i=2; i<20; i++);错误3修改为:for(i=0; i<20; i++)未改正错误之前,程序运行结果是(只写最后一项)4181改正后,程序运行结果是(只写最后一项)6765【实验题2】程序填空:给定平面上10个点,求其中离原点最近的点。
源程序用一维数组x存放这10个点的x坐标,用一维数组y存放相应的y坐标,即第i个点的坐标为(x[i], y[i])。
用变量inde x记录最近点的下标。
程序中使用距离的平方做比较:x*x+y*y。
#include<stdio.h>void main(){int i, index; //index是离原点最近的点的下标doubled, min; //min是到原点的最近距离的平方doublex[]={1.1, 3.2, -2.5, 5.67, 3.42, -4.5, 2.54, 5.6, 0.97, 4.65};// 赋初值doubley[]={-6, 4.3, 4.5, 3.67, 2.42, 2.54, 5.6, -0.97, 4.65, -3.33};// :赋初值index= 0 ; min= x[0]*x[0]+y[0]*y[0]; //设第0个点为最近点for(i=1; i<10; i++){d= x[i]*x[i]+y[i]*y[i];if( d < min ){ //Line 11min=d;index=i;}}printf("%d: x=%.2f, y=%.2f \n", index, x[index] , y[index] ); //输出最近点的下标和坐标}程序运行结果为:数组x和y的长度应该各是多少?10,10如果将程序功能改为求10个点中离原点最远的点,语句行Line 11又应如何填写?i f( d>min ){ //Line 11【实验题3】程序填空:输入5个整数, 将这5个数按逆时针顺序转动一次后再输出,如输入1 2 3 4 5,逆时针转动一次后,输出2 3 4 5 1。
C语言程序设计练习题参考答案第四章(1)一维数组C语言程序设计练习题参考答案第四章 (1) 一维数组/* 4.11 fibonacci数列,前15项 1,1,2,3,5,。
*/ #include "stdio.h"void main(){int f[15]={1,1}, i;for(i=2;i<=14;i++) /* 计算 */f[i]=f[i-2]+f[i-1];printf("fibonacci数列,前15项\n"); /* 输出 */for(i=0;i<=14;i++){printf("%5d",f[i]);if((i+1)%5==0)printf("\n");}}/* 4.12 数组元素前移动一个位置 */#include "stdio.h" void main(){int a[10]={0,1,2,3,4,5,6,7,8,9};int i,t;printf("\n移动之前:\n");for(i=0;i<=9;i++)printf("%3d",a[i]);/* 移动 */t=a[0];for(i=0;i<=9;i++)a[i]=a[i+1];a[9]=t;printf("\n移动之后:\n");for(i=0;i<=9;i++)printf("%3d",a[i]);}/* 4.13 有序数列中插入若干个数,仍然保持有序 */#include "stdio.h" void main(){int a[100]={1,4,8,10};int i,k,x,count=4;/* i,k 循环变量, x 输入整数,count 有多少整数*/printf("\n请输入要插入的整数,输入之后按回车键,如要结束请输入-1\n"); scanf("%d",&x);while(x!=-1){/* 寻找插入位置 */for(i=0;i<count;i++)< p="">/* 找到插入位置 */if(a[i]>=x){/* 移动 */for(k=count;k>i;k--)a[k]=a[k-1];/* 插入 */a[i]=x;break;}}if(i>=count)a[i]=x;count=count+1;printf("\n插入之后的数组为:\n");for(i=0;i<count;i++)< p="">printf("%4d",a[i]);printf("\n请输入要插入的整数,输入之后按回车键,如要结束请输入-1\n"); scanf("%d",&x);}}/* 4.15 将十进制数转换成二进制数,并按位存放到数组中。
C语言考试试题[一维数组]姓名:学号:成绩:一、填空题:(每题1分,共10分)1、数组是构成的集合。
2、数组元素被顺序连续地存放在内存中,并通过进行访问。
3、数组元素的下标从开始。
长度为n的数组中,最后一个元素下标为。
4、一维数组是最简单的数组,其定义形式是:。
5、一个C字符串是以结束的字符序列。
6、专门用于字符串的输入和输出的函数是。
7、float fv[]={0,4,5,12,-7,56.8,0};数组fv的长度是_________。
8、存储字符串“\0”占用________字节的存储单元。
9.有定义int a[]={4,6,78,3456,98,2,89};该数组元素最大的下标为___________。
二、单项选择题,请将答案写在下列答题卡中(每题2分,共24分 )。
1、以下正确的概念是()A、数组名的规定与变量名不相同。
B、数组名后面的常量表达式用一对圆括号括起来。
C、数组下标的数据类型为整型常量或整型表达式。
D、在C语言中,一个数组的数组下标从1开始。
2、对数组初始化正确的方法是:A、int a(5)={1,2,3,4,5};B、int a[5]={1,2,3,4,5};C、int a[5]={1…5};D、int a[5]={0,1,2,3,4,5};3、若有以下的数组定义:char x[]=”12345”; char y[]={…1‟,‟2‟,‟3‟,‟4‟,‟5‟};则正确的描述是:()A、x数组和y数组长度相同B、x数组长度大于y数组长度C、x数组长度小于y数组长度D、两个数组中存放相同的内容4、以下程序运行时,从键盘输入:AhaMA Aha<回车>,则下面程序的运行结果是()#include <stdio.h>main(){char s[80],c=‟a‟;int m=0; scanf(“%s”,s);while(s[m]!=‟\0‟){ if(s[m]==c) s[m]=s[m]-32;else if(s[m]==c-32) s[m]=s[m]+32;m++;}puts(s);}A、ahAMaB、AhAMaC、AhAMa ahAD、ahAMa ahA5、给出以下定义:char x[]=”abcdefg”; char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟,‟g‟};则正确的叙述为:()A 数组A和数组属于空数组B 数组X和数组Y的长度相同C 数组X的长度大于数组Y的长度D数组X的长度小于数组Y的长度6、下面程序的运行结果是()main(){char a[]=”morning”,t;int m,n=0;for(m=1;m<7;m++)if(a[n]<a[m]) n=m;t=a[n];a[n]=a[7];a[7]=a[n];puts(a);}A、mogninrB、moC、morningD、mornin7、字符数组C在内存中所占字节数是:()char c[]={“language”};A、9B、10C、11D、128、下列程序的输出结果是()main(){int n[2],m,k;for(m=0;m<2;m++) n[m]=m;k=2;for(m=0;m<3;m++) printf(“%d\n”,n[k]);}A、不确定的值B、3C、2D、19、在C语言中引用数组元素时,其数组下标的数据类型允许是()A.整型常量 B.整型表达式C.整型常量或整型表达式 D.任何类型表达式10.定义一个具有8个元素的整型数组,应使用的语句是()A.int a[8]; B.int a[2,4]; C. int a[]; D.int *a[8];11.字符串“w\x53\\\np\103q”长度是()A.7 B.9 C.15 D.1612.已知int cn=20;下列关于数组的定义正确的是()A.int a[cn]; B.char cmt[35.0];C.char nm[8]=”2014高考”;D.int x[31];三、程序分析题,写出下面各程序的输出结果。
第4章数组4.1 典型考试题剖析4.1.1 选择题【例1】以下能正确定义一维数组的选项是。
A)int num[]; B) #define N 100 int num[N];C)int num[0..100]; D) int N=100; int num[N];✧考点:本例考查一维数组的初始化。
✧分析:此类型为常考题型。
可以用以下方法对一维数组初始化:1.在定义数组时对数组元素赋初值。
如static int a[3]={3,4,12}。
2.可以对部分元素赋初值。
Static int a[10]={1,2,3}。
3.如果对全部元素都赋初值(即提供全部初始数据),可以不指定数组长度。
✧答案:B【例2】以下不能正确定义二维数组的选项是_______。
A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};C) int a[2][2]={{1}, 2,3}; D) int a[2][]={{1,2},{ 3,4}};✧考点:本例考查二维数组的初始化。
✧分析:此类型为常考题型。
可以用以下方法对二维数组初始化:1.分行给二维数组赋初值。
如static inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}。
2.可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。
如static inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}。
3.可以对部分元素赋初值。
Static int a[3][4]={{1},{5},{9}},a答案中赋值正确。
4.如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略,b、d答案中赋值正确。
✧答案:C【例3】以下程序的输出结果是_______。
main(){int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}A) 0650 B) 1470 C) 5430 D) 输出值不定✧考点:本例仅仅考查二维数组的初始化。
一、程序填空题请补充函数fun(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。
数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:1,1,1,2,2,2,3,4,4,5,5,6,6,7,7,8,9,9,10,10。
删除后,数组中的内容应该是:1,2,3,4,5,6,7,8,9,10。
#include<stdio.h>#define N 80int fun(int a[],int n){int i, t,j=0;t=a[0];for(i=1;i<n;i++)if( ______ );else{______ ;t=a[i];}a[j++]=t;return j;}main(){int a[N]={1,1,2,2,2,3,4,4,5,5,6,6,6,7,7,8,9,9,10,10},i,n=20;printf("The original data:\n");for(i=0;i<n; i++)printf("%4d",a[i]);n=fun(a,n);printf("\n\nThe data after deleted \n");for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");}程序修改题下列给定程序中,函数fun()的功能是:实现两个整数的交换。
例如给a和b分别输入60和65,输出为:a=65 b=60请改正程序中的错误,使它能得出正确的结果。
#include<stdio.h>#include <conio.h>/**********************found***********************/void fun(int a,b){ int t;/**********************found***********************/t=b;b=a;a=t;}main(){ int a,b;printf("Enter a, b: "); scanf("%d%d",&a,&b);fun(&a, &b);printf("a=%d b=%d\n ", a,b);}程序设计题下列程序定义了N×N的二维数组,并在主函数中自动赋值。
2021年C语言考试数组知识习题库及答案(精品)1. 单项选择题(1) int a[4]={5,3,8,9};其中a[3]的值为( )。
DA. 5B. 3C. 8D. 9(2) 以下4 个字符串函数中,( )所在的头文件与其他3 个不同。
AA. getsB. strcpyC. strlenD. strcmp(3) 以下4 个数组定义中,( )是错误的。
DA. int a[7];B. #define N 5 long b[N];C. char c[5];D. int n,d[n];(4) 对字符数组进行初始化,( )形式是错误。
BA. char c1[ ]={'1', '2', '3'};B. char c2[ ]=123;C. charc3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123";(5) 在数组中,数组名表示( )。
AA. 数组第1 个元素的首地址B.数组第2 个元素的首地址C. 数组所有元素的首地址D.数组最后1 个元素的首地址(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。
Bint a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};A. 1,12B. 0,11C. 1,11D. 0,12(7) 若有以下说明,则数值为4 的表达式是( )。
Dint a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c](8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。
基本练习:(采用文件输入输出)1.输入一串小写字母(以"."为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出) ,例:输入:aaaabbbccc.输出:a:4b:3c:3规定:文件名:tongji.pas 输出文件:tongji.in输出文件tongji.out程序:var a:array['a'..'z'] of integer;n:char;beginassign(input,’tongji,in’);reset(input);assign(output,’tongji.out’);rewrite(output);read(n);while n<>'.' dobegininc(a[n]);read(n);end;for n:='a' to 'z' doif a[n]<>0 then writeln(n,':',a[n]);close(input);close(output);end.2.输入一个不大于32767(integer)的正整数N,将它转换成一个二进制数,例如:输入:100输出:1100100规定:文件名:erjinzhi.pas 输出文件:erjinzhi.in输出文件erjinzhi.out程序:vara:array[1..16] of integer;b,c,d,e:integer;beginassign(input,'erjinzhi.in');reset(input);assign(output,'erjinzhi.out');rewrite(output);readln(b);if b>=0 then write(b,'=')else write(b,'= -');b:=abs(b);d:=0;while b>0 dobegininc(d);a[d]:=b mod 2;b:=b div 2;end;for e:=d downto 1 do write(a[e]);writeln;readln;close(input);close(output);end.提高练习:(采用文件输入输出)*3.输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数,例如:输入:1 10 8 5 9 3 2 6 7 4输出:6对应的递增或递减子序列为:1 1010 8 55 99 3 22 6 77 4规定:文件名:geshu.pas 输出文件:geshu.in输出文件geshu.outconst n=10; {此程序输出序列数}var a:array[1..n]of integer;i,k,x:integer;begin for i:=1 to n doread(a[i]);i:=2;x:=1; {表示序列数}if a[i-1]<=a[i] then k:=1 else k:=2;{k=1表示大于k=2表示小于}while i<n dobegin inc(i);case k of1: if a[i-1]>a[i] then begin k:=2;inc(x);end;2: if a[i-1]<a[i] then begin k:=1; inc(x);end;end;end;writeln(x);end.*4.输入N个数,将这N个数按从小到大的顺序显示出来;规定:文件名:paixu.pas 输出文件:paixu.in输出文件paixu.outvara:array[1..100000000] of integer;b,c,d,i,z:longint;beginassign(input,' paixu.in');reset(input);assign(output,' paixu.out');rewrite(output);readln(i); //读入输入个数for i:=1 to i do read(a[i]); //循环读入,放入数组for c:=1 to i dobeginfor b:=(c+1) to i do beginif a[c]>a[b] thenbegina[c]:=a[c] xor a[b];a[b]:=a[c] xor a[b];a[c]:=a[c] xor a[b];end;end;end;for z:=1 to i dowrite(a[z], ' ');close(input);close(output);end.**5.猴子选大王:有N只猴子围成一圈,每只猴子各一个从1到N中的依次编号,打算从中选出一个大王;经过协商,决定出选大王的规则:从第一个开始循环报数,数到M的猴子出圈,最后剩下来的就是大王。
第五章数组第一讲一维数组的定义和使用1.以下定义语句错误的是()A.int a[5]={1};B.int c[ ]={1,2,0,0,0};C.int b[3+3];D.int i=5,a[i];2.以下一维数组的定义方式,正确的是()A.int n=10;B.#define Max 10int a[n]; int a[Max];C.int a[8.5];D.int a[ ];3.以下选项中,不能正确赋值的是()A.char s1[10];s1=”Ctest”;B.char s2[ ]={‘C’,’t’,’e’,’s’,’t’};C.char s3[20]=”Ctest”;D.char s4[10]={“Ctest”};4.对赋值语句int b[10]={1,2,3,4,5};的正确理解是()A.将5个初值依次赋给b[1]至b[5]B.将5个初值依次赋给b[0]至b[4]C.5个初值依次赋给b[6]至b[10]D.因为数组长度与初值的个数不相同,所以此语句不正确5.在C语言中,数组的下标可以是()A.整型常量表达式B.整型表达式C.整型常量或整型表达式D.任何类型的表达式6.在C语言中,数组名表示()A.数组第1个元素的地址B.数组第2个元素的地址C.数组所有元素的地址D.数组最后一个元素的地址7.若有说明:int a[10];,则对a数组元素的正确引用是()A.a[10]B.a[3.5]C.a(5)D.a[10-10]8.以下能正确定义一维数组的选项是()A.int a[5]={0,1,2,3,4,5};B.int a={‘A’;’B’;’C’};C.int a[]={1,2,3,4,5};D.int a[5]=”01234”;9.执行下面的程序段后,变量k的值为()int k=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.1010.有如下程序:该程序的输出结果是()main(){ int a[6]={1,2,3,4,5,6},i,s=0;for(i=1;i<6;i++)s+=a[i];printf(“%d\n”,s); }A.18B.19C.20D.21二、填空题1.已知:int a[10]={1,2,3,4};若int型变量占4个字节,则数组a在内存中所占的字节数是()。
c语言一维数组上机考试题目
以下是一些关于C语言一维数组的常见上机考试题目:
1. 编写一个程序,输入一个整数n,求出1到n之间所有偶数的和。
2. 编写一个程序,输入一个整数n,求出1到n之间所有数字的阶乘之和。
3. 编写一个程序,输入一个整数n,求出1到n之间所有数字的立方之和。
4. 编写一个程序,输入一个整数n,求出1到n之间所有数字的平方之和。
5. 编写一个程序,输入一个整数n,求出1到n之间所有数字的倒数之和。
6. 编写一个程序,输入一个整数n,求出1到n之间所有数字的绝对值之和。
7. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子之和。
8. 编写一个程序,输入一个整数n,求出1到n之间所有数字的质因子之和。
9. 编写一个程序,输入一个整数n,求出1到n之间所有数字的奇数因子之和。
10. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子个数之和。
以上题目只是示例,实际上关于C语言一维数组的上机考试题目还有很多其他类型。
考生应该掌握一维数组的基本概念和操作,并且能够灵活运用数组来解决问题。