字符数组作业

合集下载

C语言循环字符数组的应用

C语言循环字符数组的应用


相传古代印度国王舍罕要褒奖他的宰相达依尔(国际象棋发明家), 例1、相传古代印度国王舍罕要褒奖他的宰相达依尔(国际象棋发明家), 问他需要什么?达依尔回答说: 问他需要什么?达依尔回答说:“请您在国际象棋的棋盘上第一个格子 放一粒麦子,第二个格子放二粒,第三个格子放四粒, 放一粒麦子,第二个格子放二粒,第三个格子放四粒,以此类推每一格 加一倍,一直放到64格 我就感激不尽了” 国王答应了, 加一倍,一直放到 格,我就感激不尽了”,国王答应了,但结果印度 的粮食用完还不够。请您帮国王算算这笔帐。 的粮食用完还不够。请您帮国王算算这笔帐。 #include<stdio.h> 分析: 分析: sum=1+2+22+23+24+……+263粒 已知: =1.42× 已知:1m3=1.42×108粒 void main() {int n; double v,sum=0,t=1; for(n=0;n<64;n++) {sum+=t; t*=2; }
例3:请编写输出以下图案的程序,图案的行数由输入的值决定。循环的嵌套 :请编写输出以下图案的程序,图案的行数由输入的值决定。
* *** ***** ******* #include<stdio.h> void main() {int i, j, n; printf(“请输入行数 请输入行数:"); 请输入行数 scanf("%d“,&n); for(i=1; i<=n; i++) { for(j=1; j<=n-i; j++) printf(" "); for(j=1; j<=2*i-1; j++) printf("*"); printf("\n"); } } A BBB CCCCC DDDDDDD #include<stdio.h> void main() {int i,j,n; printf("请输入行数 请输入行数:"); 请输入行数 scanf("%d",&n); for(i=1; i<=n; i++) { for(j=1; j<=n-i; j++) printf(" "); for(j=1; j<=2*i-1; j++) printf("%c",'A'+i-1); printf("\n"); } }

二维数组、字符数组习题

二维数组、字符数组习题

5.选择出正确的输入语句(其中:char s[5],c; int b;) A)scanf(“%s%c”,s,c); D B)scanf(“%%d%c”,&b,&c); C)scanf(“%d%%c”,b,&c); D)scanf(“%s%c”,s,&c);

6.设有定义:char s[12]={“string”};,则 A printf(“%d\n”,strlen(s));的输出是 。 A)6 B)7 C) 11 D) 12
16.设输入的字符串为:The Windows‟95 Operating System则输出的第一行和最 后一行分别是: 和 __ The erating main() { char a[4][10],j,k; for(j=0;j<4;j++) scanf("%s",a[j]); for(j=0;j<4;j++) { k=j; printf("%s\n",a[j++]+k); } }
9.函数调用”strcat(strcpy(str1,str2),str3)”的功能是 C 。 A 将字符串str1复制到字符串str2中后再连接到字符串 str3之后 B 将字符串str1连接到字符串str2之后再复制到字符串 str3之后 C 将字符串str2复制到字符串str1中后再将字符串str3连 接到字符串str1之后 D 将字符串str2连接到字符串str1之后再将字符串str1复 制到字符串str3中 10.定义如下变量的数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; C
10000 02000 00300 00040 00005

第四章 数组作业

第四章 数组作业

第四章数组4.1 选择题1. 以下关于数组的描述正确的是( )。

A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。

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. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。

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[1]的地址的是( )。

A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。

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的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#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中的值为( )。

第七章字符数组与指针练习题参考答案(2)

第七章字符数组与指针练习题参考答案(2)

第七章字符数组与字符串【题7.29】下面是对s的初始化,其中不正确的是。

A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”;D)char s[5]=“abcdef”;【题7.30】下面程序段的运行结果是。

char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s”,c);A)‘a’‘b’B)abC)ab c【题7.31】对两个数组a和b进行如下初始化char a[]=“ABCDEF”;char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’};则以下叙述正确的是。

A)a与b数组完全相同B)a与b长度相同C)a和b中都存放字符串D)a数组比b数组长度长提示:‘\0’是字符串结束的标志【题7.32】有两个字符数组a、b,则以下正确的输入格式是。

A)gets(a,b); B)scanf(“%s %s”,a,b);C)scanf(“%s %s”,&a,&b); D)gets(“a”),get(“b”);【题7.33】有字符数组a[80]和b[80],则正确的输出形式是。

A)puts(a,b); B)printf(“%s %s”,a[],b[]);C)putchar(a,b); D)puts(a),puts(b);【题7.34】下面程序段的运行结果是。

char a[7]=“abcdef”;char b[4]=“ABC”;strcpy(a,b);printf(“%c”,a[5]);A)空格B)\0 C)e D)f提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’,a[4]=‘e’,a[5 ]=‘f’,a[6]=‘\0’,【题7.35】有下面的程序段char a[3],b[]=“China”;a=b;printf(“%s”,a);则。

A)运行后将输出China B)运行后将输出ChC)运行后将输出Chi D)编译出错提示:数组名是常量【题7.36】下面程序段的运行结果是。

数组练习题大全

数组练习题大全

数组练习题大全数组是计算机编程中一种重要的数据结构。

掌握数组的基本操作和应用是每个程序员都需要具备的技能之一。

本文将为您提供一系列数组练习题,帮助您熟练掌握数组的使用。

一、基础操作题1. 请编写一个程序,创建一个长度为5的整型数组,然后将数组中的元素依次赋值为1、2、3、4、5,并输出数组中的所有元素。

2. 请编写一个程序,创建一个长度为10的字符型数组,然后将数组中的元素依次赋值为'A'、'B'、'C'、'D'、'E'、'F'、'G'、'H'、'I'、'J',并输出数组中的所有元素。

3. 请编写一个程序,创建一个长度为7的浮点型数组,然后使用循环从键盘输入数组中的元素值,并计算数组中所有元素的平均值。

二、查找与排序题4. 请编写一个程序,在一个已知整型数组中查找指定的元素。

如果找到该元素,则输出该元素的下标位置;如果未找到,则输出"未找到该元素"。

5. 请编写一个程序,将一个已知整型数组按照从小到大的顺序进行排序,并输出排序后的结果。

三、统计与分析题6. 请编写一个程序,统计一个整型数组中负数的个数,并输出统计结果。

7. 请编写一个程序,计算一个整型数组中所有元素的和,并输出总和。

8. 请编写一个程序,找出一个整型数组中的最大值和最小值,并输出这两个值。

四、应用题9. 请编写一个程序,统计一个整型数组中奇数和偶数的个数,并输出统计结果。

10. 请编写一个程序,从一个已知整型数组中删除指定的元素,并输出删除后的数组。

11. 请编写一个程序,将一个整型数组中的所有元素向左移动一位,并输出移动后的数组。

12. 请编写一个程序,将一个整型数组中的所有元素向右移动一位,并输出移动后的数组。

总结:通过以上一系列的数组练习题,您可以逐步掌握数组的使用技巧。

实验六 字符数组与数组的综合应用

实验六  字符数组与数组的综合应用

实验六字符数组与数组的综合应用一、实验目的1.掌握字符数组和字符串函数的使用。

2.使用数组进行复杂程序的编写。

二、实验要求1.复习字符数组的定义、输入输出和常用的字符串函数。

2.在实验题目空白处编写源程序代码。

3.运行程序并记录运行结果。

4.总结实验过程中的错误和心得体会,写出实验总结。

5.对本次实验进行自评,在“实验得分”部分对每个实验题目的完成情况打分。

三、实验内容1. 下面程序的功能是对两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。

例如:输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。

#include <stdio.h>main(){ char str1[100],str2[100],c;int i,s;printf("Enter string 1: "); gets(str1);printf("Enter string 2: "); gets(str2);i=0;while((str1[i] = = str2[i] && str1[i]!= ))i++;s= ;printf("%d\n", s);}2. 编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。

不用strcpy函数。

复制时’\0’也要复制过去,’\0’后面的字符不复制。

程序代码:#include <stdio.h>main(){ char s1[80],s2[80];int i;printf("Input s2:");scanf("%s",s2);for(i=0;i<strlen(s2);i++)s1[i]=s2[i];printf("s1:%s\n",s1);}3. 输入若干个字符串(最多10个),求出每个字符串的长度,并打印最长字符串的内容。

18 字符数组与字符串

18 字符数组与字符串


两者的区别比较明显,主要体现在:




练习1

将原来的字符串逆序存放,即: 原来:
a b c d e f g h \0

逆序后:
h g f e d c b a \0
•16
练习1程序
void Reverse(char a[]) { int i,n=strlen(a); char temp; for(i=0;i<n/2;i++) { temp=a[i]; a[i]=a[n-i-1]; a[n-i-1]=temp; } }
•23
写函数,计算字符串长度
#include<stdio.h> 算法: unsignedint My_strlen(char a[]); /*函数功能:求一个字符串中字符个数 */ 输入字符串 unsigned int My_strlen(char a[]) 计算其中的字符个数 {int i,number=0; void main() 从第一个字符数起,只要不到末尾,就加 1 for(i=0;a[i]!=0;i++) { {number++; 输出 char str[50]; } int n; return number; puts(“please input a string”); /*直接返回i也行*/ scanf("%s",str); } n=My_strlen(str); printf("strlen(\" %s\")=%d.\n",str,n); }
•17
相应主函数
#include<stdio.h> #include<string.h> void Reverse(char a[]); void main() { char str[100]; printf(" please input a string: "); scanf("%s",str); Reverse (str); printf("after reverse,the string is:%s.\n",s有两种用途

C语言项目实验作业_学生版

C语言项目实验作业_学生版

C语言项目实验作业系(部)机电与汽车工程学院姓名(学号) 40 庞文胤 25 梁志坚专业(班级) 13电子2班电子教研室编制实验一数据类型、运算符和表达式应用一、实验目的1.掌握C语言数据类型的种类和作用;2.熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,3.掌握不同的类型数据之间赋值的规律;4.灵活运用各种运算符及其表达式;二、实验步骤(一)阅读程序1. 输入并运行以下程序,观察运行结果。

#include <stdio.h>main(){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2); }(1)在第五行后面加入以下printf语句,并运行。

printf("%d,%d\n",c1,c2);(2)在(1)的基础上,将第三行改为以下语句,并运行。

int c1,c2;(3)在(1)的基础上,将第四行改为以下语句,并运行。

c1=321;c2=400;2. 分析并运行此程序,当输入的数据为10时,下面程序的运行结果。

#include <stdio.h>main(){ float x,y;scanf("%f",&x);printf("\n2.4*x-1/2=%f",2.4*x-1.0/2);printf("\nx%%2/5-x=%f",(int)(x)%2/5-x);printf("\n(x-=x*10,x/=10)=%d\n",(x-=x*10,x/=10)); }3.分析以下程序运行的结果#include <stdio.h>main(){ int i,j,m,n ;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}(2) 将第6、7行改为:m=i++;n=++j;(3)程序改为:#include <stdio.h>main(){ int i , j , m=0 , n=0 ;i=8; j=10;m+=i++;n-=--j;printf(“%d,%d,%d,%d\n”,i,j,m,n);}要求:依据题目要求,分析已给出的语句,填写空白。

程序设计(C)作业三(有答案)

程序设计(C)作业三(有答案)

程序设计(C)作业三(有答案)第3次作业答案(红字为答案)1. 下列叙述中错误的是()A. 对于double 类型数组,不可直接用数组名对数组进行整体输入或输出B. 数组名代表数组所占存储区的首地址,其值不可变C. 在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示D. 可以通过赋初值的方式确定数组元素个数提示:请从数组下标的合法取值范围来考虑。

2. 已有定义char a[] = “xyz”,b[]={ ‘x’, ‘y’, ‘z’} ,以下叙述正确的是()A. 数组a 和 b 的长度相同B. 数组 a 的长度小于数组 b 的长度C. 数组a 的长度大于数组 b 的长度D. 上述说法均不正确提示:此题考察字符数组长度和字符串长度之间的关系。

3. 以下能正确定义一维数组的选项是()A. int num[];B. #define N 100 int num[N]C. int num[0..100];D. int N = 100; int num[N];提示:此题考察一维数组的维数界定问题。

4. 下列程序的输出结果是()#includevoid main(){char a[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f ’, ‘g’, ‘h’, ‘\0 ’}; int i, j;i = sizeof(a); j = strlen(a);printf( “%d, %d\n”, i,j); }A. 9,9B. 8, 9C. 1, 8D. 9,8提示:此题考察字符数组长度和字符串长度之间的关系。

5. 以下不能正确定义二维数组的选项是()A. int a[2][] = {{1, 2}, {3, 4}};B. int a[][2] = {1, 2, 3, 4};C. int a[2][2] = {{1}, {2}};D. int a[2][2] = {{1}, 2, 3};提示:此题考察二维数组初始化的规定。

C语言项目实验作业_学生版

C语言项目实验作业_学生版

C语言项目实验作业系(部)机电与汽车工程学院姓名(学号) 40 庞文胤 25 梁志坚专业(班级) 13电子2班电子教研室编制实验一数据类型、运算符和表达式应用一、实验目的1.掌握C语言数据类型的种类和作用;2.熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,3.掌握不同的类型数据之间赋值的规律;4.灵活运用各种运算符及其表达式;二、实验步骤(一)阅读程序1. 输入并运行以下程序,观察运行结果。

#include <stdio.h>main(){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2); }(1)在第五行后面加入以下printf语句,并运行。

printf("%d,%d\n",c1,c2);(2)在(1)的基础上,将第三行改为以下语句,并运行。

int c1,c2;(3)在(1)的基础上,将第四行改为以下语句,并运行。

c1=321;c2=400;2. 分析并运行此程序,当输入的数据为10时,下面程序的运行结果。

#include <stdio.h>main(){ float x,y;scanf("%f",&x);printf("\n2.4*x-1/2=%f",2.4*x-1.0/2);printf("\nx%%2/5-x=%f",(int)(x)%2/5-x);printf("\n(x-=x*10,x/=10)=%d\n",(x-=x*10,x/=10)); }3.分析以下程序运行的结果#include <stdio.h>main(){ int i,j,m,n ;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}(2) 将第6、7行改为:m=i++;n=++j;(3)程序改为:#include <stdio.h>main(){ int i , j , m=0 , n=0 ;i=8; j=10;m+=i++;n-=--j;printf(“%d,%d,%d,%d\n”,i,j,m,n);}要求:依据题目要求,分析已给出的语句,填写空白。

字符数组练习题

字符数组练习题

字符数组练习题字符数组是C语言中常用的数据类型之一,用于存储一系列字符。

在本文中,我们将探讨一些字符数组的练习题,以帮助提升对字符数组的理解和运用。

1. 字符串拷贝题目描述:给定两个字符数组str1和str2,请编写一个函数,将str2的内容拷贝到str1中。

要求:不使用标准库函数strcpy(),而是自己编写实现。

解题思路:遍历str2,将每个字符逐个拷贝到str1的对应位置。

代码示例:```cvoid stringCopy(char str1[], char str2[]) {int i = 0;while (str2[i] != '\0') {str1[i] = str2[i];i++;}str1[i] = '\0'; // 添加字符串结束符}2. 字符串连接题目描述:给定两个字符数组str1和str2,请编写一个函数,将str2的内容连接到str1的末尾。

要求:不使用标准库函数strcat(),而是自己编写实现。

解题思路:先找到str1的末尾位置,然后从该位置开始,逐个拷贝str2的字符到str1。

代码示例:```cvoid stringConcat(char str1[], char str2[]) {int i = 0;while (str1[i] != '\0') {i++;}int j = 0;while (str2[j] != '\0') {str1[i] = str2[j];i++;j++;str1[i] = '\0'; // 添加字符串结束符}```3. 字符串长度题目描述:给定一个字符数组,请编写一个函数,计算该字符数组表示的字符串的长度。

要求:不使用标准库函数strlen(),而是自己编写实现。

解题思路:遍历字符数组,直到遇到字符串结束符'\0'时停止,并记录经过的字符个数。

字符数组习题(1)

字符数组习题(1)

字符数组习题(1)字符数组习题1.s12和s2已正确定义并分别指向两个字符串。

若要求:当s1所指串⼤于s2所指串时,执⾏语句S;则以下选项中正确的是_____A)if(s1>s2)S; B)if(strcmp(s1,s2))S;C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S;2.以下定义语句中,错误的是________。

A) int a[]={1,2}; B) char a[]={"test"};C) char s[10]={"test"}; D) int n=5,a[n];3、当接受⽤户输⼊的含有空格的字符串时,应使⽤______函数。

A) gets( ) B) getchar( ) C) scanf( ) D) printf( )4、设有数组定义:char array[]="China";则strlen(array)的值为______ 。

A) 4 B) 5 C) 6 D) 75、设有数组定义:char array[]="China";则数组array所占的存储空间为________。

A) 4个字节B) 5个字节C) 6个字节D) 7个字节6、设有数组定义:char array[10]= "China";则数组array所占的存储空间为__ _____。

A) 4个字节B) 5个字节C) 6个字节D) 10个字节7.有如下程序main(){ char ch[80];int j;long s=0;printf("Enter a numeral string\n"); gets(ch);for(j=0;ch[j]>'\0';j++)s=10*s+ch[j]-'0';printf("%ld\n",s);}如果运⾏时,从键盘上输⼊由数字组成的字符串,该程序的功能是______。

C语言数组练习

C语言数组练习

C语言数组练习一填空题1.构成数组的各个元素必须具有相同的______。

2.C语言数组的下标总是从开始,不可以为负数。

3.字符串是以为结束标志的一维字符数组。

4.有定义:char a[]=””;则a数组的长度是。

5.若有以下定义:int a[10];,则数组a元素下标的上限为______,下限为______. 6.在C语言中,数组int a[5];的首地址是。

7.数组名定名规则和变量名相同,遵循定名规则。

8.对于一维数组的定义“类型说明符数组名[常量表达式]”,其中常量表达式可以包括和,不能包含。

9.在C语言中,引用数组只能通过来实现,而不能通过整体引用来实现。

如引用数组int a[5];第四个元素为。

10、char str1[15]=“zhongguo”,数组str1所占的内存空间为个字节。

11.构成数组的各个元素必须具有相同的。

12、有数组的定义int str[ ]={0,1,2,3,4};该数组长度为______________。

13.有数组定义float kk[5];则将第一个元素赋值为 5.0的语句为____________;将第二个元素值为12.3的语句为______________,将一、二两个元素的和赋给最后一个元素的语句为_________________________________ 14.一维数组元素的下标最小值从_______________开始,定义一个数组为int x[8];的数组长度为________________.引用最后一个元素的为_____________________。

15、在数组中int score[10]={1、2、3、4、5}中,元素个数有______________个,其中score[8]的值为______________。

二选择题1.对两个数组a和b进行如下初始化char a[]="ABCDEF";char b[]={'A','B','C','D','E','F'};则以下叙述正确的是________。

C语言习题六(数组部分)习题及答案

C语言习题六(数组部分)习题及答案

C语言习题六(数组部分)习题及答案习题六一.选择题1.在C语言中,引用数组元素时,其数组下标的数据类型允许是c 。

A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式2.以下对一维整型数组a的正确说明是DA)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.若有定义:int a[10],则对数组a元素的正确引用是 D 。

A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.以下不能对一维数组a进行正确初始化的语句是B 。

A)int a[10]={0,0,0,0,0}; B)int a[10]={} ;C)int a[ ] = {0} ; D)int a[10]={10*1} ;5.若有定义:int a[3][4],则对数组a元素的正确引用是。

AA)a[2][3] B)a[1,3] C)a(5) D)a[10-10]6.以下能对二维数组a进行正确初始化的语句是B。

A)int a[2][]={{1,0,1},{5,2,3}} ;B)int a[][3]={{1,2,3},{4,5,6}} ;C)int a[2][4]={{1,2,3},{4,5},{6}} ;D)int a[][3]={{1,0,1},{},{1,1}} ;7.以下不能对二维数组a进行正确初始化的语句是。

CA)int a[2][3]={0} ;B)int a[][3]={{1,2},{0}} ;C)int a[2][3]={{1,2},{3,4},{5,6}} ;D)int a[][3]={1,2,3,4,5,6} ;8.若有说明:int a[3][4]={0};则下面正确的叙述是D。

A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值09.若有说明:int a[][4]={0,0};则下面不正确的叙述是D。

数组字符串常见题目分析 (1)

数组字符串常见题目分析 (1)
• 限制条件可能是下标的限制,特别是二维数组中,可能某 一行的、某一列的、对角线的 • 限制条件可能是取值的限制
输入理想的程序,输出快乐的人生
求最大、最小值:谁坐主宾
• 按名字大小,名字最大的坐主宾。题目要求求 出主宾的名字。名字一律以拼音表示,含空格; 名字不会重复。 • Input:若干行,表示客人每个人的名字,名字 长度不超过30;客人总数不超过10。 • Output:主宾名字,末尾换行 • 输入处理: 文件读入若干行字符串 while(gets(s)!=NULL){ …. }
输入理想的程序,输出快乐的人生
求最大、最小值:第二价格竞拍
• • • • 解题思路 该问题是求最大值、次大值、最大值的下标 声明3个变量表示最大值、最大值下标、次大值 如何在一趟循环中求出最大值与次大值?
– 将第一个元素给最大值,将0给次大值 – 然后循环遍历剩余的n-1个元素 – 如果第i个比最大值还大,则将最大值赋给次大值, 第i个值赋给最大值,并把i赋给最大值下标 – 如果第i个比最大值小,比次大值大,则将第i个值赋 给次大值
输入理想的程序,输出快乐的人生
按某种要求输出字符串:镜像文字
• 解题思路
– 若干字符串怎么输入,没有个数啊,没有结束标志 啊?? – 若干字符是在后台文件中存着,需要用下列方式读取 while(gets(s)!=NULL){ …. } – 输入124,怎么输出12421。 • 12421可分为两部分,124 与 21 • 124可原样输出,21 则可以从倒数第2个字符逆序输 出
– m3的初始值可以是0
输入理想的程序,输出快乐的人生
求最大、最小值:精挑细选的钢管
int main(){ int a[50][3],m1,m2,m3,t,i,j; scanf("%d",&t); for(i=0;i<t;i++){ for(j=0;j<3;j++){ scanf("%d",&a[i][j]); } } m1=a[0][0]; for(i=0;i<t;i++){ if(a[i][0]>m1){ m1=a[i][0]; } } m2=2147483647;

C语言程序设计——字符数组

C语言程序设计——字符数组
或 gets(str1,str2);都是不合法。
3.字符串连接函数(strcat)
一般形式为:strcat(字符数组名1,字符数组名2);
功能:把字符数组2中的字符串连接到字符数组1中字符
串的后面,并删去字符串1后的’ \0’。函数调用
后得到一个函数值——字符数组1的地址。
例如:#include<string.h>
c[7]=′p′;c[8]=′p′;c[9]=′y′;
字符数组类型说明的形式与前面介绍的数值数组相同。 一般形式:类型说明符 数组名(常量表达式);
例如:char c[10]; (每个数组元素占1个字节的内存单元)
由于字符型和整型是互相通用的,因此也可定义一个 整型数组,用它存放字符数组。 例如:int c[10];
(每个数组元素占2个字节的内存单元, 合法,但浪费存储空间)
二、字符数组的初始化(两种方法)
1.逐个给数组中的各元素赋初值。 如:char c[10]={′I′, ′ ′, ′a′, ′m′,′ ′ ,
′h′,′a′,′p′,′p′,′y′}; 把10个字符分别赋给c[0]—c[9]10个元素。
当对全体元素赋初值时也可以省去长度说明。
2.用字符串直接给字符数组赋初值。 C语言中,没有专门的字符串变量,通常用一个字符数组 来存放一个字符串。 如:char c[10]={“I am happy”};
或char c[10]=“I am happy”; (花括号可省略)
上例也可把长度省略,此时编译系统通过计算初值个数 自动确定该数组长度为11,其中字符串有效长度为10, 另外加上以’ \0’作为字符串的结束符。
scanf(“%s%s%s”,str1,str2,str3); 输入字符:How_are_you?,系统分别将三个字符 串送到三个数组中。

c语言字符数组、字符串习题

c语言字符数组、字符串习题

班级学号姓名分数
实验九字符数组、字符串
实验目的:
1、掌握字符数组的定义及数组元素的引用方法。

2、掌握字符数组的赋值、输入输出方法。

3、掌握字符串数据的处理方法。

4、掌握与字符数组有关的基本算法的程序设计。

5、能够应用字符数组进行综合程序设计。

实验内容:
1、输入一行字符,统计其中有多少个单词,单词之间用空格分开。

P165
2、统计出一行字符串中各元音字母的个数(大小写不区分)。

提示:首先从键盘接收一行字符串存放在字符数组中,然后逐个字符判断是否是元音字母,如果是,则数量加1。

3、有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

提示:可以定义二维字符数组str,大小为3×80,每行存放一个字符串,可以把str[0]、str[1]、str[2]看作3个一维字符组,用gets函数分别读入3个字符串,赋给3个一维字符数组。

然后逐个字符判断是哪一类,相应数量值加1。

友情提示:部分文档来自网络整理,供您参考!文档可复制、编制,期待您的好评与关注!。

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

第1题:
编写程序,将一个字符串首尾互换后输出。

输入字符串(允许包含空格),输出处理后的结果。

样例输入:I am happy!
样例输出:!yppah ma I
第2题:
编写程序,从键盘输入一任意字符串(不包含空格),然后输入所要查找字符。

如果存在则输出它在字符串中第一次出现的位置,否则输出NO。

样例输入:Hello a
样例输出:NO
样例输入:Hello l
样例输出:2
第3题:
编写程序,将一个字符串首尾互换,并与原字符串连接后输出。

输入字符串(不包含空格),输出处理后的结果。

样例输入:china
样例输出:chinaanihc
第4题:
编写程序,输入一十六进制的数,如果输入的不是十六进制,则输出NO,否则输出对应的十进制值。

样例输入:1A2b
样例输出:6699
样例输入:15G9
样例输出:NO
第5题:
编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符的ASCII码值为奇数和偶数的个数。

样例输入:7843028503
样例输出:4 6
第6题:
编写程序,输入字符串(不包含空格),删除字符串中ASCII码值能被3整除的字符,将剩余字符按从小到大排序后输出。

样例输入:Chinancpeu
样例输出:Caehnnp
第7题:
编写程序,输入字符串(包含空格),统计其中单词的个数,单词之间以一个或多个空格分隔。

样例输入:How are you
样例输出:3
第8题:
编写程序,输入字符串(不包含空格)和子串,统计该字符串中指定子串的个数。

样例输入:abababab bab 样例输出:3。

相关文档
最新文档