c语言数组习题优选稿
C程序设计(数组)习题与答案

C程序设计(数组)习题与答案C程序设计(数组)习题与答案数组是C语言中常用的数据结构之一,它可以存储多个相同类型的元素。
掌握数组的使用对于C程序设计至关重要,下面将为大家介绍一些关于C数组的习题及其答案。
1. 习题一:计算数组元素的和题目描述:编写一个程序,计算给定数组中所有元素的和,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的整型数组int sum = 0; // 用于存储和的变量// 遍历数组,累加每个元素的值for (int i = 0; i < 5; i++) {sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;}```2. 习题二:查找数组中的最大值题目描述:编写一个程序,找出给定整型数组中的最大值,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[7] = {4, 7, 2, 9, 1, 5, 8}; // 定义一个包含7个元素的整型数组int max = arr[0]; // 假设第一个元素为最大值// 遍历数组,比较每个元素的值与当前最大值的关系for (int i = 1; i < 7; i++) {if (arr[i] > max) {max = arr[i];}}printf("数组中的最大值为:%d\n", max);return 0;}```3. 习题三:查找数组中的特定元素题目描述:编写一个程序,在给定整型数组中查找是否存在指定元素,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[6] = {3, 6, 9, 2, 5, 8}; // 定义一个包含6个元素的整型数组 int target = 2; // 指定要查找的元素int found = 0; // 用于标记是否找到目标元素的变量// 遍历数组,比较每个元素的值与目标值的关系for (int i = 0; i < 6; i++) {if (arr[i] == target) {found = 1;break;}}if (found) {printf("数组中存在目标元素:%d\n", target);} else {printf("数组中不存在目标元素:%d\n", target);}return 0;}```4. 习题四:数组元素逆序排列题目描述:编写一个程序,将给定整型数组的元素逆序排列,并输出结果。
C语言数组练习及答案

第四部分数组4.1 选择题1、以下关于数组得描述正确得就是(c )。
A、数组得大小就是固定得,但可以有不同得类型得数组元素B、数组得大小就是可变得,但所有数组元素得类型必须相同C、数组得大小就是固定得,所有数组元素得类型必须相同D、数组得大小就是可变得,可以有不同得类型得数组元素2、以下对一维整型数组a得正确说明就是(d )。
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语言中,引用数组元素时,其数组下标得数据类型允许就是(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[1]得地址得就是(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、以下程序段给数组所有得元素输入数据,请选择正确答案填入(a )。
#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 )。
C语言函数与数组练习题及参考程序

1、设计一个判断素数的函数,在主函数中调用它,把一个整型数组a中的所有素数找出来,存放在数组b中(两数组长度均为整型常量N,数组a的各元素从键盘输入)。
#include<stdio.h>#include<math.h>#define N 10int main(){int prime(int);//函数声明int i, j=0, a[N], b[N] ;printf("data: ");for(i=0;i<N;i++)scanf("%d", &a[i]);//输入数组元素for(i=0; i<N; i++)if( prime(a[i]) )//如果为素数b[j++]=a[i];for(i=0; i<j; i++)printf("%d ", b[i]);return 0;}int prime(int k) //非素数则返回0,素数则返回1{if(k==1)return 0;int sk,i;sk=(int)sqrt(k);for(i=2;i<=sk;i++)if(k%i==0)return 0;return 1;}2、用一维数组做参数,编写一个求一维整形数组平均值的函数。
在主函数中调用这个函数求一个整形数组的平均值。
(数组长度N定义为整型常量)#include<stdio.h>#define N 5int main(){float average(int [] ,int);//函数声明int i, a[N] ;printf("data: ");for(i=0; i<N; i++)scanf("%d", &a[i]);printf("average=%f", average(a, N));return 0;}float average(int b[], int n )//形参n表示数组长度{int i;float sum=0.0 ;for(i=0; i<n; i++)sum=sum+b[i];return sum/n;}3、输入一个字符串,将其中的数字字符按输入顺序存储到digital数组中,然后输出该数组中的数字字符串。
C语言题库数组(2021年整理精品文档)

(完整版)C语言题库数组编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)C语言题库数组)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)C语言题库数组的全部内容。
数组一、选择题1、假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组X在内存中所占字节数是(B).A 3B 6C 10D 202、执行下面的程序段后,变量k 中的值为(A).int k=3, s[2];s[0]=k; k=s[1]*10;A 不定值B 33C 30D 103、设有数组定义: char array []="China”; 则数组array 所占的空间为(C)。
A 4 个字节B 5 个字节C 6 个字节有0/的结束标志D 7 个字节4、下列描述中不正确的是 CA 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入、输出C 可以对整型数组进行整体输入、输出D 不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值5、给出以下定义char x[]=”abcdefg”;char y[ ]={’a’,'b’,’c','d’,'e','f’,’g'};则正确的叙述为 CA 数组X 和数组Y 等价B 数组x 和数组Y 的长度相同C 数组X 的长度大于数组Y 的长度D 数组X 的长度小于数组Y 的长度6、下述对C 语言字符数组的描术中错误的是 CA 字符数组可以存放字符串B 字符数组中的字符串可以整体输入、输出C 可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值D 不可以用关系运算符对字符数组中的字符串进行比较7、定义如下变量和数组int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 Cfor(i=0;i<3;i++) printf(”%d",x[i][2—i]);A 1 5 9B 1 4 7C 3 5 7D 3 6 98、以下一维数组a 的正确定义是(D)A int a(10);B float n=10,a[n];C int n;scanf(”%d”,&n);float a[n];D #define size 10; long a[size];9、合法的数组定义是 DA int a[]="string";B int a[5]={0,1,2,3,4,5};C vhst s="string";D char a[]={0,1,2,3,4,5};10、以下关于数组的描述正确的是CA 数组的大小是固定的,但可以有不同的类型的数组元素;B 数组的大小是可变的,但所有数组元素的类型必须相同;C 数组的大小是固定的,但所有数组元素的类型必须相同;D 数组的大小是可变的,但可以有不同的类型的数组元素;11、在定义int a[10];之后,对a 的引用正确的是 AA a[9]B a[6.3]C a(6)D a[10]12、以下对一维数组a 进行不正确初始化的是 AA int a[10]=(0,0,0,0);B int a[10]={};C int a[]={0};D int a[10]={10*2};13、以下对二维数组a 进行正确初始化的是 BA int a[2][3]={{1,2},{3,4},{5,6}};B int a[][3]={1,2,3,4,5,6};C int a[2][]={1,2,3,4,5,6};D int a[2][]={{1,2},{3,4}};14、以下对字符数组进行不正确初始化的是 AA static char word[]=’cool\0’;B static char word[]={‘c’,’o’,’o’,’l’};C static char word[]={“cool\0”};D static char word[]="cool\0”;15、在定义int a[5][4];之后,对数组元素的引用正确的是 CA a[2][4]B a[5][0]C a[0][0]D a[0,0]16、下列选项中,能正确定义数组的语句是 DA int num[0。
c语言数组练习题及答案

/* 4.16 5*5矩阵中每行的绝对值最大值,与同行对角线交换*/ #include "stdio.h"#include "math.h"void main(){int a[5][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2}, {1,3,-2,4,6},{2,2,0,7,4}} ;int i,k,max,sub,temp;/* i 循环变量,控制行,k 循环变量,控制列,max 当前最大绝对值,sub 当前最大绝对值元素的下标temp 临时用于交换的变量*/printf("交换之前,输出\n"); /*交换之前,输出*/for(i=0;i<=4;i++){for(k=0;k<=4;k++)printf("%4d",a[i][k]);printf("\n");}/*交换*/for(i=0;i<=4;i++){/*假设第一个元素最大*/max=fabs(a[i][0]); sub=0;/*寻找绝对值最大的元素记下下标*/for(k=1;k<=4;k++){if(fabs(a[i][k])>max){max=fabs(a[i][k]); sub=k;}}/*交换*/temp=a[i][i]; a[i][i]=a[i][sub]; a[i][sub]=temp; } /*交换之后,输出*/printf("交换之后,输出\n");for(i=0;i<=4;i++){for(k=0;k<=4;k++)printf("%4d",a[i][k]);printf("\n");}}/* 4.17 在一个一维数组中存放任意4个数,如:5,1,8,6,生成如下矩阵5 5 5 5 5 5 55 1 1 1 1 1 55 1 8 8 8 1 55 1 86 8 1 55 1 8 8 8 1 55 1 1 1 1 1 55 5 5 5 5 5 5*/#include "stdio.h"#include "conio.h"void main(){int FourNumbers[4], array[7][7], i , row, column;printf("请输入4个整数\n");scanf("%d%d%d%d",&FourNumbers[0],&FourNumbers [1],&FourNumbers[2],&FourNumbers[3]);for(i=0;i<=3;i++){for(row=i;row<=6-i;row++){for(column=i;column<=6-i;column++)array[row][column]=FourNumbers[i];}}/* 输出矩阵*/for(row=0;row<=6;row++){for(column=0;column<=6;column++)printf("%4d",array[row][column]);printf("\n");}getch();}/* 习题4.19 对一行电文加密,每个字母转换为字母表中循环右移的第三个字母,a-d, b-e, ......z-c */#include "stdio.h"void main(){int c;while((c=getchar())!='\n'){if( (c>='a' && c<='z') || (c>='A' && c<='Z') ){c=c+3;if ((c>'Z' && c<='Z'+3) || c>'z') c=c-26;}putchar(c);}}。
数组c语言试题库及答案

数组c语言试题库及答案1. 请解释C语言中数组的概念。
答:在C语言中,数组是一种数据结构,它允许将多个相同类型的数据项存储在连续的内存位置。
数组可以是一维的,也可以是多维的。
2. 如何声明一个整型数组?答:声明一个整型数组的语法是 `int array_name[size];`,其中`array_name` 是数组的名字,`size` 是数组中元素的数量。
3. 请写出一个程序,用于计算一个整型数组中所有元素的和。
```c#include <stdio.h>int main() {int array[] = {1, 2, 3, 4, 5};int sum = 0;for(int i = 0; i < 5; i++) {sum += array[i];}printf("Sum of array elements: %d\n", sum);return 0;}```4. 如果一个数组的元素数量是动态的,应该如何声明?答:在C语言中,可以使用指针来处理动态数组。
声明方式为`int *array_name;`,然后在程序中使用 `malloc` 或 `calloc` 函数分配内存。
5. 请解释数组的索引。
答:数组的索引是从0开始的,它表示数组中元素的位置。
例如,对于一个名为 `array` 的数组,`array[0]` 是数组的第一个元素。
6. 如何初始化一个整型数组?答:可以使用花括号 `{}` 来初始化数组,例如 `int array[] = {1, 2, 3, 4, 5};`。
7. 请写出一个程序,用于交换数组中的两个元素。
```c#include <stdio.h>int main() {int array[] = {1, 2, 3, 4, 5};int temp;int index1 = 1; // 第二个元素int index2 = 3; // 第四个元素temp = array[index1];array[index1] = array[index2];array[index2] = temp;for(int i = 0; i < 5; i++) {printf("%d ", array[i]);}return 0;}```8. 在C语言中,数组的元素可以是什么数据类型?答:数组的元素可以是任何数据类型,包括整型、浮点型、字符型、结构体等。
c语言数组练习题及答案

/* 4.16 5*5矩阵中每行的绝对值最大值,与同行对角线交换*/ #include "stdio.h"#include "math.h"void main(){int a[5][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2},{1,3,-2,4,6},{2,2,0,7,4}} ;int i,k,max,sub,temp;/* i 循环变量,控制行,k 循环变量,控制列,max 当前最大绝对值,sub 当前最大绝对值元素的下标temp 临时用于交换的变量*/printf("交换之前,输出\n"); /*交换之前,输出*/for(i=0;i<=4;i++){for(k=0;k<=4;k++)printf("%4d",a[i][k]);printf("\n");}/*交换*/for(i=0;i<=4;i++){/*假设第一个元素最大*/max=fabs(a[i][0]); sub=0;/*寻找绝对值最大的元素记下下标*/for(k=1;k<=4;k++){if(fabs(a[i][k])>max){max=fabs(a[i][k]); sub=k;}}/*交换*/temp=a[i][i]; a[i][i]=a[i][sub]; a[i][sub]=temp; }/*交换之后,输出*/printf("交换之后,输出\n");for(i=0;i<=4;i++){for(k=0;k<=4;k++)printf("%4d",a[i][k]);printf("\n");}}/* 4.17 在一个一维数组中存放任意4个数,如:5,1,8,6,生成如下矩阵5 5 5 5 5 5 55 1 1 1 1 1 55 1 8 8 8 1 55 1 86 8 1 55 1 8 8 8 1 55 1 1 1 1 1 55 5 5 5 5 5 5*/#include "stdio.h"#include "conio.h"void main(){int FourNumbers[4], array[7][7], i , row, column;printf("请输入4个整数\n");scanf("%d%d%d%d",&FourNumbers[0],&FourNumbers[1], &FourNumbers[2],&FourNumbers[3]);for(i=0;i<=3;i++){for(row=i;row<=6-i;row++){for(column=i;column<=6-i;column++)array[row][column]=FourNumbers[i];}}/* 输出矩阵*/for(row=0;row<=6;row++){for(column=0;column<=6;column++)printf("%4d",array[row][column]);printf("\n");}getch();}/* 习题4.19 对一行电文加密,每个字母转换为字母表中循环右移的第三个字母,a-d, b-e, ......z-c */#include "stdio.h"void main(){int c;while((c=getchar())!='\n'){if( (c>='a' && c<='z') || (c>='A' && c<='Z') ) {c=c+3;if ((c>'Z' && c<='Z'+3) || c>'z')c=c-26;}putchar(c);}}。
C语言数组练习及答案

第四部分数组4.1 选择题1. 以下关于数组的描述正确的是(c )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是(d )。
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语言中,引用数组元素时,其数组下标的数据类型允许是(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[1]的地址的是(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. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。
#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 )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言数组习题集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)数组练习解答1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是___________【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。
空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。
【答案】方法一:float a[4]={0.0,0.0,0.0,0.0};方法二:float a[]={ 0.0,0.0,0.0,0.0};方法三:float a[4]= {0.0};方法四: static float [4];2 下列数组定义语句中,错误的是()① char x[1]='a';②auto char x[1]={0};③ static char x[l];④ char x[l];【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。
【答案】①3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。
其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。
现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。
【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列4 1 11 4 23 2 42 3 3【答案】 l、2、4、34 用"选择排序法"对n个数据排序,需要进行n-1步。
其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。
现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。
【分析】开始排序前的排列为: 4 1 3 2执行第1步后的排列为: 1 4 3 2执行第2步后的排列为: 1 2 3 4【答案】1、2、3、45 下列数组定义语句中,正确的是()① int a[][]={1,2,3,4,5,6};② char a[2]「3]='a','b';③ int a[][3]= {1,2,3,4,5,6};④ static int a[][]={{1,2,3},{4,5,6}};【分析】规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。
还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以备选答案②也是错误的。
显然备选答案③符合题意。
【答案】③6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是()①char s[]={‘1','2','3','\0 '};②char s「」={"123"};③char s[]={"123\n"};④ char s[4]={'1','2','3'};【分析】备选答案①中省略了数组长度,所以每个元素都赋了初值,共计4个元素,初值依次为'l'、'2'、'3'、'\0',最后一个元素的值为字符串结束标记,所以数组S中存放的是字符串"123",该答案不符合题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组s的长度为4,其中的初值是字符串"123",不符合题意(即正确的);备选答案③中也是给数组s赋予字符串的初值,但是字符串不是"123",而是"123\n",所以该答案符合题意(即错误的);显然答案④也不符合题意(即正确的)。
下面来分析答案④为什么是正确的,该答案给出了数组长度为4,赋初值时仅给前3个元素赋予字符'1 '、 '2'、'3',第 4个元素没有赋初值,按照的规定,也有初值,且初值为空值,对字符型数组来说,空值就是'\0',即字符率结束标记,所以数组S中存放的也是字符串" 123"。
【答案】③7 设有下列数据定义语句,则数组元素x[i]的值是__________________。
int i= 3,x[4]={ 1,2,3};【分析】由于i的初值为3,所以x[i]就是x[3]。
由于数组的下标是从0开始的,所以x[3]实际上是数组x的第4个元素。
从定义语句中可以看出数组x的前3个元素的初值依次为1、2、3,第4个元素没有赋初值,其初值自动设为空值,对整型数组来说,空值是0,显然x[3」的值是0.【答案】08 设有下列数据定义语句,则 puts(&s[0][0])的输出结果是__________;puts(s[0]〕输出结果是_____________。
char s[4][5]={{'l','\0'},{"23"},"345","4\0"};【分析】首先分析字符型数组s的初值,s的第1行中存放的字符串是"1"、第2行中存放的符串是"23"、第3行中存放的字符串是"345"、第4行中存放的字符串是"4"。
puts()函数的功能是输出从"参数"处开始存放的字符串中有效字符。
按照上的分析,第1个输出的结果是从"&S[0][0]"开始的字符串,这个地址对应的就是数s的第1行,所以输出结果为1;第2个输出的结果是从“s[]”开始的字符串,这个址对应的也是数组s的第1行,所以输出结果也为1。
【答案】119 设有下列数据定义语句:char a[4][10]={"11","22","33","44"};则 puts(strcat(a[1],a[3]))的输出结果是________________;putS(strcpy(a[0],a[2]))的输出结果是________________。
【分析】字符数组a共有4行,每行存放一个字符串。
这4行的首地址依次为:a[0]、a[1]、a[2]、a[3],从这4个地址开始存放的字符串依次为:"11"、"22"、"33"、"44"。
strcat(a[1],a[3])函数调用的功能是将s[3]处的字符串连接到a[l]的字符串后面,所以执行该函数调用后的a「l」处的字符串为"2244",而该函数的返回值就是a[1]的首地址,puts()函数的功能就是输出这个地址存放的字符串,由此,第1个输出的结果就是:2244。
同样理由可以分析strcpy(a[0],a[2])的功能是将a[2]处的字符串("33")复制到a[0]处,返回a[0]的地址,puts()输出的就是a[0]处的字符串,结果为:33。
【答案】2244 3310 设有下列数据定义语句:char str[2][10]={"abc","ABC"};则printf("%d",strcmp(str[1],str[0]))的输出结果是__________;printf("%d",strcmp(strlwr(str[1],str[0])),str[0]))的输出结果是_______。
【分析】字符型数组str中,从str[0]开始存放的字符串是"abc"、从str[l]开始存放的字符串是"ABC"。
strcmp(str[l],str[0])是比较str[l]和str【0」处的两个字符串的大小,由于"ABC"是小于"abc"的,按照srrcmp函数的功能可知,返回值是一个小于0的整数,这是第1个空的答案。
再来分析第2个空的答案,strlwr (str[l])函数的功能是将str[l]处的字符串中大写字母改为小写字母,其返回值是修改后字符串的地址。
strcmp(stlwr(sir[1]),str[0]))函数的功能是比较str[l]和str[0]处的字符串,由于str[l]处的字符串已经改为小写字母了,所以和str[0]处的字符串完全相同,返回值是0,这就是第2个空的答案。
[答案]某个小于0的任意整数11 下列程序的功能是读取10个实数,然后依次输出前l个实数和、前2个实数和、…、前9个实数和、前10个实数和。
请填写程序中缺少的语句。
main(){float f[10],X=0.0;int i;for(i=0;i<10;i++)scanf(" % f",&f[i]);for(i=1;i<=10;i++){_______________________printf("sum of NO %2d----%f\n",i,x);}}【分析】浏览程序清单后,可以发现前一个次数型循环是输入 10个实数存入数组f中。
后一个次数型循环是计算前i个实数和并存入变量X中,然后再输出这个x 的值。
程序中所缺少的语句就是实现"计算前i个实数和并存入变量X中"的。
当i 等于1时,x要等于f[0]的值,即f[i-l]的值;当i等于2时,x要等于f[0] +f[l]的值,即f[0]+f[i-1」的值,此时f[0]的值已经计算并存入变量x中;当i等于3时,x要等于f[0]+f[1]+f[2]的值,即f[0]+f[1]+f[i-l]的值,此时f[0]+f[1]的值已经计算并存入变量x中;由此可以推出:前i个值的计算公式为:x=x+f[i-1],将这个表达式组成语句就是需要填写的内容。