C语言一维数组练习题及参考程序

4.1习题
1、输入10个整数,然后将这10个整数逆序输出。

#include<stdio.h>
int main()
{
int i;
int a[10];
printf("Input data: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Output data: ");
for(i=9;i>=0;i--) //通过下标引用顺序实现逆序
printf("%d ",a[i]);
return 0;
}
2、输入一个整数m,然后输入m个整数,存放在数组a中;再输入一个整数n,然后输入
n个整数,存放在数组b中。

找出a和b两数组的非共有元素,存放在数组c中并输出。

(m和n的值不超过20)
#include<stdio.h>
int main()
{
int a[20], b[20], c[20];//假定元素值不超过20
int m, n, i, j, k=0;
scanf("%d", &m);
for(i=0; i<m; i++)
scanf("%d", &a[i]);
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &b[i]);
for(i=0; i<m; i++)//找出数组a中不是共同元素的值
{
for(j=0; j<n; j++)
{
if(a[i]==b[j])
break;
}
if(j>=n)//不是共同元素
{
c[k]=a[i];
k++;//为存放下一个元素做准备
}
}
for(i=0; i<n; i++)//找出数组b中不是共同元素的值
{
for(j=0; j<m; j++)
{
if(b[i]==a[j])
break;
}
if(j>=m)
{
c[k]=b[i];
k++;
}
}
for(i=0; i<k; i++)
printf(" %d", c[i]);
printf(“\n”);
return 0;
}
3、输入N个整数(N定义为常量),将最小值与第一个数交换,最大值与最后一个数交换。

#include <stdio.h>
#define N 10
int main()
{
int i,min,max,temp;
int a[N];
for (i = 0; i < N; i++)
scanf("%d",&a[i]);
min = 0;
max = 0;
for (i = 0; i < N; i++)
{
if ( a[i] < a[min] )
min=i ;
if(a[i]>a[max])
max=i ;
}
temp = a[0];
a[0] = a[min];
a[min] = temp;
temp = a[N-1];
a[N-1] = a[max];
a[max] = temp;
printf("After swapped:");
for(i=0; i<N; i++)
printf("%4d ", a[i]);
return 0;
}
4、输入一个整数序列,遇到0结束。

统计并输出序列中出现次数最多的整数及其出现次数。

#include <stdio.h>
int main()
{
int a[1000];
int count=0;
int max = 0, maxcount = 0;
int i,j;
prin tf(“Input integers:\n”);
for (i = 0; i < 1000; i++)
{
scanf("%d", &a[i]);
if(a[i]==0) break;
for (j = 0; j < i+1; j++)
{
if (a[i] == a[j])
{
count++;
}
}
if (count > maxcount)
{
maxcount = count;
max = a[i];
}
count = 0;
}
printf("出现次数最多的数是%d,共出现%d次\n", max, maxcount);
return 0;
}。

合集下载

C语言程序设计试题及参考答案

C语言程序设计试题及参考答案

C语言程序设计试题及参考答案精心整理c语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(d)a、一个c源程序可以由一个或多个函数共同组成b、一个c源程序必须涵盖一个main函数c、c程序的基本共同组成单位就是函数d、在c程序中,注释说明只能位于一条语句的后面2、以下四个选项中,就是不合法的用户标识符的选项就是(b)a、abcb、12acc、sund、a3、建有语句inta=4;则继续执行了语句a+=a-=a*a后,变量a的值就是(a)a、-24b、0c、4d、164、以下运算符中优先级最低的就是(b)a、a、inputx、y、z;b、scanf(“%d%d%d”,&x,&y,&z);c、scanf(“%d%d%d”,x,y,z);d、read(“%d%d%d”,&x,&y,&z);9、假定从键盘输入23456,下面程序的输出结果是:(c)voidmain(){intm,n;scanf(“-=”,&m,&n);printf(“m=%dn=%d\\n”,m,n);}a、m=23n=45b、m=234n=56c、m=23n=456d、语句有错误10、若运转时,给变量x输出12,则以下程序的运转结果就是(a)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\\n”,y);}精心整理a、0b、22c、12d、1011、c语言中while和do-while循环的主要区别(a)a、do-while的循环体至少继续执行一次b、while的循环控制条件比do-while的循环控制条件严格c、do-while允许从外部转到循环体内d、do-while的循环体不能是复合语句12、以下对二维数组的恰当表明的语句就是(c)a、inta[3][]b、floata(3,4)c、doublea[3][4]d、floata(3)(4)13、以下程序的输出结果是(c)main(){inti,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,9b、1,4,7c、3,5,7d、3,6,914、以下能对一维数组a进行正确初始化的语句是(c)a、inta[10]=(0,0,0,0,0);b、inta[10]={};c、inta[10]={0};d、inta[10]={10*1};15、以下程序执行后的输出结果是:(a)intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\\n”,z,y,x);}a、30,20,10b、10,20,30c、10,30,50d、10,30,4016、以下说法正确的是(a)如果在一个函数中的复合语句中定义了一个变量,则该变量a、只在该复合语句中有效b、在该函数中有效c、在本程序范围内有效d、为非法变量17、以下函数调用语句中含有的实参个数为(b)func((exp1,exp2,exp3),(exp4,exp5));a、1b、2c、4d、518、在c语言程序中,以下观点恰当的就是(b)。

c语言数组1

c语言数组1
1、循环30次
① 输入->x ② s+x->s 2、算平均分ave 3、循环30次
数组
1.能保存所有的数据 2.能用循环结构处理数据
① 输入->x
② 如果x>ave 输出x。
定义 有序数据的集合 特点 所有元素类型相同 要素 数组名 下标
第五章
5.1 5.2 5.3 5.4
数组
一维数组 二维数组 字符型数据 数组常用算法举例
4
5 6
5
4 3
7
8 9
2
1 0
算法: for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }
例2 产生n个[0,70]之间的随机整数,并 按逆序重放在数组中。(n<50)
#include "stdlib.h" main( ) { int a[50], t, n, i; scanf("%d", &n); randomize(); for(i=0;i<n;i++) { a[i]=random(71); printf("%5d",a[i]); } printf("\n"); for(i=0;i<=n/2-1;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(i=0;i<n;i++) printf("%5d",a[i]); }
21 0
34 0
55 0
.........
f[2]=f[1]+f[0]; f[3]=f[2]+f[1]; f[i]=f[i-1]+f[i-2];

C语言上机题参考答案

C语言上机题参考答案
}
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);

c语言

c语言

第1题、求一个3×4矩阵的所有靠外侧的的元素之和。

循环结构第2题、已知一个3×4矩阵a[3][4]={{1,2,3,4},{1,2,3,4},{1,2,3,4}},打印输出其转置矩阵。

第3题、给定一个N*N的方阵,求出其上三角元素之和。

第4题、打印杨辉三角形前10行。

11 11 2 11 3 3 11 4 6 4 11 5 1010 5 1……………………不能单纯的直接加,必须用循环结构第5题、将一个整数字符串转换为整数输出。

(注:整数字符串和整数是不同的,比如"123"是一个整数字符串,每个元素都是一个数字,但不能进行数值运算,而123是一个整数,可以进行数值运算。

两者外观形态相似,本质不同)在字符串里的“1”相当于ASCII码的49.从146页开始到150页只要记住字符串的处理函数,不太会考。

要考也不会很难。

第6题、判断一个字符串是否为回文,如果是输出“yes”,否则输出“no”。

所谓回文是指正读和反读相同的字符串,比如“12321”字符串是不能直接运算的。

第7题、该程序功能:输入1个字符串,按字母出现次序输出其中所出现过的大写英文字母。

如运行时输入字符串"FONTNAME and FILENAME",应输出"F O N T A M E I L"。

不重复第12题:编写一个判断素数的函数,并在主函数中调用,输出2~100所有的素数,每行输出五个。

第1题:编写一个函数,利用参数传入一个3位数n,找到101~n间满足下列条件的数:他是完全平方数,又有两位数字相同,如144、676,函数返回这样的数的个数(提示,可以利用函数的嵌套调用,编写一个函数,判断一个整数是否满足条件)。

第2题:写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

第3题:利用递归函数求n!。

第171页第4题:编写一个函数,输入一个16进制数,输出对应的10进制数//思路:这个问题不是把十六进制数以十进制格式输出,而是确实把一个十六进制数转换成为10进制//关于输入:本例把16进制数以字符串格式输入,而不是以数值方式输入//例:一个16进制数3a5d=(((3*16)*16+10)*16+5)*16+13//所以从字符串的第一个字符开始依次处理,当前结果=上一结果*16+当前数值//a-f的数值对应10-15,参照代码//本例以字符串作为函数参数,请参照指针和字符串内容第5题:写出调用函数f(27)的输出结果是。

C语言 第六章 数组

C语言 第六章 数组
2.
6
6.1 排序问题
3. 初始化
类型名 数组名[数组长度]={初值表}; 初值表中依次放着数组元素的初值。例如: int a[10]={1,2,3,4,5,6,7,8,9,10}; 静态存储的数组如果没有初始化,系统自动给所有的数组元素赋0。 即 static int b[5]; 等价于 static int b[5]={0,0,0,0,0}; 初始化也可以只针对部分元素,如 static int b[5]={1,2,3}; 只对数组b的前3个元素赋初值,其余元素的初值为0。又如 int f[20]={0,1}; 对数组f的前两个元素赋初值,其余元素的值 不确定。
18
6.2 矩阵中最大值的位置
4. 使用二维数组编程
例7:定义一个3*2的二维数组a,数组元素的值由下式给 出,按矩阵的形式输出a。a[i][j]=i+j(0≤i ≤2, 0≤j ≤1), 见文件p131ex7-6.cpp
i
j
第1次 第2次 第3次 第4次 第5次
第6次
0 0 1 1 2
2
0 1 0 1 0
9
6.1 排序问题
4. 使用一维数组编程
例4:输入一个正整数n(1<n≤10), 再输入n个整数,将它们存入 数组a中。 ① 输出最小值和它所对应的下标。 ② 将最小值与第一个数交换,输 出交换后的n个数。 数组的长度在定义时必须确定, 如果无法确定需要处理的数据 数量,至少也要估计其上限, 并将该上限值作为数组长度。 因为n ≤10,数组长度就取上 限10。此外,如果用变量 index记录最小值对应的下标, 则最小值就是a[index]。 见p124ex7-4.cpp
8
6.1 排序问题
4. 使用一维数组编程

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10)

C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。

解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。

因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。

8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。

请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。

解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。

C语言程序设计部分习题及例题参考程序

《C语言程序设计》部分例题及课后习题参考程序1.编程计算如下分段函数:y={2x+3 x≥10 4x 0≤x<10 5x−6 x<0[参考程序]#include 〈stdio。

h>int main(){float x,y;printf(”input x:”);scanf("%f",&x);if(x>=10)y=2*x+3;else if(x〉=0)y=4*x;elsey=5*x-6;printf(”y=%。

2f\n”,y);}2.编程将从键盘输入的百分制成绩转换为等级分,转换方法如下:90以上(大于或等于90,下同)为A,80分以上为B,70分以上为C,60分以上为D,60分以下,即低于60分为E。

[参考程序]#include <stdio。

h〉int main(){float score;char rank;printf("input a score:”);scanf(”%f”,&score);if(score>100||score〈0){printf("invalid score input\n”);exit(—1);}switch((int)score/10){case 10:case 9:rank=’A';break;case 8:rank='B’;break;case 7:rank='C’;break;case 6:rank=’D';break;default:rank=’E’;}printf("%.2f:%c\n",score,rank);return 0;}3。

编程判断以从键盘输入的三个数为边长,是否能构成三角形.[参考程序]#include 〈stdio。

h>int main(){float a,b,c;printf(”input a,b,c:");scanf("%f%f%f",&a,&b,&c);if(a>0 && b〉0 &&c〉0 && a+b〉c &&a+c>b &&b+c〉a) printf(”(%。

《C语言》程序算法练习题

完成下列训练题的基本步骤是:1、问题分析及解决方案框架确定充分地分析和理解问题本身,明确问题到底要做什么。

(what to do?)在确定解决问题框架过程中(how to do?),考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。

2、详细设计和编码确定算法的主要流程,在此基础上进行代码设计(coding),一般来讲,每个明确的功能模块程序不超过60行代码,否则,功能要继续分解。

3、上机前编写程序与检查上机前检查程序可有效提高调试效率,减少上机调试程序时的无谓错误。

程序检查主要有两种途径:用一组测试数据手工执行程序;或者通过阅读或给别人讲解自己的程序而深入、全面地理解程序逻辑,把程序中的明显错误事前排除。

4、上机调试程序提供的结果应当包括:算法、数据结构的设计、程序清单1、猜数游戏游戏的开始由机器产生一个随机数(1~100之间,用库函数random()取值),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示“your answer is HIGH,try again!”否则,程序提示“your answer is LOW,try again!”直到猜对为止。

程序可以实现连续猜数,直到游戏者退出。

程序输出要求:累计游戏者猜对这个数所需的次数n,当n<=7时,给出“congratulation!”,当7<n<15时,给出“I believe you can do it better!”;当n>15时,用exit(0)库函数退出程序。

2、百钱百鸡问题(穷举算法)我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。

百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”注:穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特性。

使用穷举法的关键是确定正确的穷举范围,即不能过分扩大,也不能过分缩小穷举的范围。

C语言数组试题

第4章 数组4.1内容概述本章主要介绍了数值数组和字符数组的定义、初始化、元素引用和数组数据的输入与输出,字符数组实现字符串、字符串函数的实现与调用。

指针数组与数组指针定义、元素引用。

利用一维数组实现如挑数、排序、求和等实际应用问题。

利用二维数组实现矩阵的应用问题。

利用字符数组实现字符串的各种操作。

本章知识结构如图4.1所示。

图4.1 第4章知识结构图考核要求:掌握一维数组、二维数组、字符数组和指针数组的定义和初始化;掌握数组元素存储地址计算;掌握数组元素的下标法、指针法引用;掌握字符数组与字符串的区别与联系;掌握有关字符串处理函数的使用方法;能利用一维数组、二维数组解决向量、矩阵等实际应用问题。

重点难点:本章的重点是一维数组、二维数组和字符数组的定义、初始化、元素引用,字符串处理函数的使用。

本章的难点是字符串与字符数组的区别,指针数组和数组元素的指针法引用。

核心考点:数组的定义、初始化和数组元素的引用方法,一维数组、二维数组和字符数组的实际应用,字符串的处理方法。

4.2 典型题解析【例4.1】以下对一维数组a 的定义中正确的是( )。

A. char a(10);B. int a[0..100];C. int a[5];D. int k=10;int a[k];解析:一维数组定义的一般形式为:类型标识符 数组名[常量表达式]其中,常量表达式可以是任意类型,一般为算术表达式,其值表示数组元素的个数,即数组长度。

答案:C【例4.2】以下对一维数组的定义中不正确的是( )。

A. double x[5]={2.0,4.0,6.0,8.0,10.0};数组数值数组 定义 初始化 元素引用 数组元素输入和输出 指针数组 定义初始化 应用字符数组 定义 初始化 元素引用 数组元素输入和输出B. int y[5]={0,1,3,5,7,9};C. char ch1[ ]={'1', '2', '3', '4', '5'};D. char ch2[ ]={'\x10', '\xa', '\x8'};解析:可以对一维数组的全部元素或部分元素赋初值。

C语言作业及上机习题(仅供参考)

第一次课熟悉win-TC编译环境、熟悉C语言程序结构1.使用C 语言编译环境,输入下面的源程序。

将你的程序命名为hello.c,然后编译运行它。

/* program writes the words "Hello, world" to the screen *File : Hello.c* By : NJCIT* Date : 07-03-09*/#include <stdio.h>main(){printf("Hello, world\n");return(0);}2.main() /*求两数之和*/{int a,b,sum; /* 这是变量定义*/a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}问题:1.一个C语言源程序从哪里开始执行?2. C程序的函数由几部分构成?3. ANSI C 中的注释内容是用什么符号界定?第二次课熟悉printf()函数、常见转义字符及各种数据类型的输出格式1.2. main(){int a=5,b=7,c=-1;float x=67.8564,y=-789.124;char c=‘A’;long n=1234567;unsigned u=65535;printf(“%d%d\n”,a,b);printf(“%3d%3d\n”,a,b);printf(“%f,%f\n”,x,y);printf(“%-10f%-10f\n”,x,y);printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);printf(“%e,%10.2e\n”,x,y);printf(“%c,%d,%o,%x\n”,c,c,c,c);printf(“%ld,%lo,%x\n”,n,n,n);printf(“%u,%o,%x,%d\n”,u,u,u,u);printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”);}3. 假设下面的例子都是完整程序的一部分,那么他们每一个将会输出什么?4.加载,编译并运行下面的程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档