niusouti.com

问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回。  例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后,a所指数组中的数据为:4、2、6、8,返回值为4。  请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。  注意:部分源程序给出如下。  不得增行或删行,也不得更改程序的结构!  试题程序:#include #define N 9int

题目
问答题
下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回。  例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后,a所指数组中的数据为:4、2、6、8,返回值为4。  请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。  注意:部分源程序给出如下。  不得增行或删行,也不得更改程序的结构!  试题程序:#include #define N 9int fun(int a[],int n){ int i,j; j=0; for(i=0;i

相似考题
更多“下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]…中,把奇数从”相关问题
  • 第1题:

    函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一含新串放在t所指的数组中。

    例如,若s所指字符串中的内容为:“ABCDEFGl23456”,其中字符A的ASCII码值为奇数,因此应当删除:其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:“246”。

    注意:部分源程序存在文件PROGl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是将字符串中除了下标为偶数、ASCII值也为偶数的字符外,其余的全都删除。解题过程利用if条件判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。

  • 第2题:

    请编写函数fun(),其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新中放在t所指的数组中。

    例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的 ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<conio.h>

    include<stdio.h>

    include<string.h>

    void fun(char*s,char t[])

    {

    }

    main()

    {

    char s[100],t[100];

    clrscr();

    printf("\nPlease enter string S:");

    scanf("%s",s);

    fun(s,t);

    printf("\nThe result is:%s\n",t);

    }


    正确答案:void fun(char*schar t[]) { int ij=0; for(i=0;s[i]!='\0';i++) if(i%2==0&&s[i]%2==0) /*将s所措字符串中下标和ASCII值都为偶数的字符放入数组t中*/ t[j++]=s[i]; /*在字符串最后加上结束标志位*/ t[j]='\0'; }
    void fun(char*s,char t[]) { int i,j=0; for(i=0;s[i]!='\0';i++) if(i%2==0&&s[i]%2==0) /*将s所措字符串中下标和ASCII值都为偶数的字符放入数组t中*/ t[j++]=s[i]; /*在字符串最后加上结束标志位*/ t[j]='\0'; } 解析:本题要求除了下标为偶数同时ASCII值也为偶数的字符之外,其他字符都删除。题目要求留下下标为偶数同时 ASCII值也为偶数的字符。
    C语言中并没有直接删除字符的算法,请大家在做题的时候注意。

  • 第3题:

    下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。


    正确答案:
    (1)M(2)<(3)k【考点分析】本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。【解题思路】填空1:题目指出88所指字符串数组中共有M个字符串,所以for循环语句循环条件是i<M。填空2:要求求长度最短的字符串,tn中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与+nl七较,若小于tn,则将该长度值赋给+n,因此if语句的务件表达式为len<+n。填空3:将最短字符串的行下标作为函数值返回,变量-储存行下标的值。

  • 第4题:

    下列给定程序中,函数fun的功能是:从整数l0-55,查找能被3整除且有一位上的数值是5的数,把这些:故放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放位数,a2放十位数。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

    试题程序:


    正确答案:

  • 第5题:

    函数fun的功能是:将s所指字符串中下标为偶数同时ASCIl值为奇数的字符删除,S所指串中剩余的字符形成的新串放在t所指的数组中。

    例如,若s所指字符串中的内容为“ABCDEFGl2345”,其中字符C的ASCIl码值为奇数,在数组中的下标为偶数,因此必须删除;而字符l的ASCIl码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“BDFl2345”。

    注意:部分源程序给出如下。

    请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

    试题程序:


    正确答案:

  • 第6题:

    给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)N (2)substr (3)0
    (1)N (2)substr (3)0 解析:本题中函数fun的功能是在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。
    在fun函数中,利用循环逐个查找ss所指字符串数组中的每一个字符串,并判断是否含有substr所指的子串,有则输出。

  • 第7题:

    请编写函数proc(),其功能是:将str所指字符串中除下标为偶数、同时ASCⅡ码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFG12345,其中字符8的ASCⅡ码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCⅡ码值为奇数,所在数组中的下标为偶数,因此不应当删除。依次类推,最后t所指的数组中的内容应是ACEG。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。 试题程序:


    正确答案:

    【解析】题目中要求将字符串str中下标为偶数、同时ASCⅡ码值为奇数的字符放在数组t中。首先,需要检查字符串str中下标为偶数的字符的ASCⅡ码值是否为奇数,将符合要求的字符放在数组t中。最后,为新的字符串数组添加结束符。

  • 第8题:

    请补充函数proc(),该函数的功能是把数组num中的数按从小到大的顺序排列(数组元素个数及值从主函数中输入)。

    例如,输入n=5,num[0]~num[4]依次为5 7 2 8 0,结果为0 2 5 7 8。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:

    【l】i<n【2】j%n-1
    【解析】由函数proc()可知,该程序选用的是冒泡法来进行排序,变量i为循环次数,因此,【1】处填“i<n”;变量J用来判断第j个元素和第j+1个元素顺序是否正确,因此,【2】处填“j<n-1”。

  • 第9题:

    给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

    例如,形参s所指的字符串为:baawrslkjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)t=i (2)i (3)0或“\0”
    (1)t=i (2)i (3)0或“\0” 解析:函数fun的功能是对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符保存在另外一个数组中。在fun函数里,采用选择排序法对奇数位置的字符进行排序,排序之后将这些字符保存在p所指字符数组。
    在选择排序法中的升序排序中,首先从数组中挑选一个最小的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。

  • 第10题:

    给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置O)。

    请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

    注意:部分源程序在文件BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!

    试题程序:


    正确答案:
    (1)N或20(2)break(3)n【解题思路】填空l:变量n用于存储数组的下标,要通过while语句对数组进行赋值,数组的容量为20,因此循环条件应为n<20。填空2:通过一个for循环判断X是否与数组中已存的元素重复,若重复则跳出for循环结束。填空3:若for循环是由break语句结束的,则X与数组中的元素重复,此时i必然小于n;若for循环是因为循环变量i递增到某值,而不再满足循环条件结束的,说明X的值与数组中的元素不重复,则此时i的值等于n。

  • 第11题:

    问答题
    请根据以下各小题的要求设计C应用程序(包括界面和代码)。  给定程序中函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。  例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。  请改正程序中的错误,使它能得到正确结果。  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。  试题程序如下:#include #define SIZE 20int fun(double *s, double *w){ int k,i; double sum; for(k=2,i=0;i

    正确答案:

    (1)错误:sun=0.0
    正确:sum=0.0
    (2)错误:if(i+1%5==0)
    正确:if((i+1)%5==0)
    解析:

      错误1:由题目程序的其他部分可以知道,此处变量名sun书写错误,应为sum。
      错误2:由C语言的运算符优先级的定义顺序可以知道:由于%的优先级比+高,所以必须加上括号,因此改为:if((i+1)%5==0)。

  • 第12题:

    问答题
    请根据以下各小题的要求设计C应用程序(包括界面和代码)。  函数fun()的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在 a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余依此类推。例如:若a所指数组中的数据最初排列为:1,4,2,3,9,6,5,8,7,则按规则移动后,数据排列为:9,1,8,2,7,3,6,4,5。形参n中存放a所指数组中数据的个数。  注意:部分源程序给出如下。  请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。  试题程序如下:#include #define N 9/************found************/void fun(int ①______,int n){ int i,j,max,min,px,pn,t; /************found************/ for(i=0;ia[j])   {    min=a[j];    pn=j;   }  }  if(px!=i)  {   t=a[i];   a[i]=max;   a[px]=t;   if(pn==i)    pn=px;  }  if(pn!=i+1)  {   t=a[i+1];   a[i+1]=min;   a[pn]=t;  } }}main(){ int b[N]={1,4,2,3,9,6,5,8,7},i; printf(The original data:); for(i=0;i

    正确答案:

    ①*a或a[]
    ②2
    ③i+1
    解析:

      填空1:由后边的程序可知,形参a应定义为整型数组,所以此处应填:*a或a[]。
      填空2:由于循环每次对两个数组元素进行赋值,所以外for循环每次增量应该加2。
      填空3:由题意可知,此处是找出从i+1到n的数的最大值和最小值,所以内for循环的初始值应为:i+1。

  • 第13题:

    打开程序Cprog072.C,完成其中的fun函数,该函数将4阶矩阵A的各行中0之前的所有正数依次存放到数组b中,并返回这些正数之和。如矩阵A为则调用函数fun()后,b[0]为1,b[1]为2,b[2]为23,b[3]为32,函数返回58。


  • 第14题:

    下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[o]中,接着把a_所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。

    例如,若a所指数组中的数据最初排列为:9、1…4 2 3、6、5、8、7;则按规则移动后,数据排列为:1、9.2、8:3、7、4、6、5。形参13.中存放a所指数组中数据的个数。

    规定fum函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。请在程序的下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)a[i](2)a[j](3)a[j]【考点分析】本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,财不执行下面的语句。【解题思路】填空1:for循环语句循环体中将数组元素a[i]赋值给变量max和变量rain。填空2:通过一次for循环,找到数组中的最大值,if语句的条件表达式是mu<a[j]。填空3:同理,此处if语句的条件表达式是min>a[j]。【解题宝典】求最大值或者最小值的题目,一般都是假设一个元素最大或最小,然后通过if条件语句将该元素和其他元素进行比较操作来完成。

  • 第15题:

    请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和c的个数。

    注意:部分源程序存在PROGl.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所缩写的若干语句。

    试题程序:


    正确答案:
    inti=0,j=0;//循环统计的下标【考点分析】主要考察考生对多重循环的理解与使用,以及字符串的比较。【解题思路】对二维数组的行列分别循环,行优先,查找数组中元素为A或者C,分别对其进行计数。

  • 第16题:

    函数fun的功能是:将S所指字符串中除下标为偶数同时ASCIl码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。

    例如,若s所指字符串中的内容为“ABCDEFGl23456”,其中字符A的ASCIl码值为奇数,因此应当删除;字符8的ASCIl码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCIl码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是‘&39;246”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

    试题程序:


    正确答案:

  • 第17题:

    编写函数fun,其功能是:将s所指字符串中除了下标为奇数,同时ASCH码值也为奇数自q字符之外。

    其余所有字符全部删除,串中剩余字符所形成的一个新串放在所指的数组中。

    例如,若s所指字符串的内容为“ABCDEFGl2345”,其中字符A的ASCIl码值为奇数,但所在元素的

    下标为偶数,因此需要删除;而字符l的ASCIl码值为奇数,所在数组中的下标也为奇数,因此不应当删除,

    其他依此类推。最后t所指数组中的内容应为“135”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

    试题程序:


    正确答案:

    用循环遍历字符串,通过if语句将下标和ASCIl码都为奇数的字符保存到数组中,在字符串末尾加上结束标识符。

  • 第18题:

    函数fun()的功能是:逆置数组元素中的值,形参m给出数组中数据的个数。

    例如,若x所指数组中的数据依次为:9、8、7、6、5,则逆置后依次为:5、6、7、8、9。

    注意:部分源程序给出如下。

    请勿改动函数main()与其他函数中的任何内容,仅在fun()函数的横线上填写所需的若干表达式或语句。

    试题程序:


    正确答案:

    【1】m/2【2】i【3】a[m-1-i]
    【解析】该题中函数功能是逆置数组元素的值。此类题的解题思路,是在简单的两个数值交换的基础上,增加对数值定位的功能,也就是确定要交换的数值在数组中的位置。
    第一空:对数组中的元素进行逆置,根据上面的分析,整个数组中元素交换的循环次数,应该是只需要交换整个数组长度的一半的次数,所以,第一空应填:“m/2”。
    第二空:元素逆置,就是第一个和最后一个交换,依次类推。个数为m的数组中,与第i个元素相对应需要交换的元素是第m-1-i个元素,所以第二空填:“i”。
    第三空:根据两个元素交换的算法,第i个和第m-i-1个元素交换的过程,应填:“a[m-1-i]”。

  • 第19题:

    下列给定程序中,函数proc()的功能是:按顺序给str所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若str所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,str所指数组有17个元素,则只对前15个元素进行处理,不对最后的2个元素求平均值。 程序执行结果为Theoriginaldata: 246810 1214161820 2224262830 3224 Theresult: 6.0016.0026.00 请修改函数proc()中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:
    错误:if(i+1%5==0)
    正确:if((i+1)%5==0)
    【解析】按题目中要求,对每5个元素求平均值。每取到5个元素的标志为(i+1)对5取余为0,而表达式“i+1%5”表示的含义为变量i加上1对5取余,因此,应改为“if((i+1)%5==0)”。

  • 第20题:

    函数fun()的功能是:逆置数组元素中的值。形参n给出数组中数据的个数。

    例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:

    【1】n/2【2】i【3】a[n-i-1]
    【解析】fun()函数实现的功能是实现数组的逆置。具体步骤通过参数传递,得到数组指针(即数组名)和数组记录大小的变量n,通过这两个参数配置for循环,遍历数组的中间的元素位置,每次循环都将i位置和对应位置结点(i距离0位置等于其距离尾位置的结点)的元素交换,由此实现数组的逆置。

  • 第21题:

    下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a [0][2] .....中,把偶数从数组中删除,奇数个数通过函数值返回。 例如:若a所指数组中的数据最初排列为:9、1、4,2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、 3、5、7,返回值为5。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANKl.C中。 不得增行或删行,也不得更改程序的结构!


    正确答案:
    【考点分析】
    本题考查:if语句条件表达式;自增/自减运算符;函数返回值。
    【解题思路】
    填空1:根据题目要求,需要进行奇偶数的判定,可以通过if条件语句来判断数组元素是否是奇数,如果元素不能被2整除,则为奇数,所以填人if(a[i]%2==1)。
    填空2:将为奇数的元素重新存放到数组的前面,同时下标增1。
    填空3:函数返回值需要返回数组中奇数的个数,因此返回变量j。
    【解题宝典】
    奇数和偶数的判定方法,通过if条件语句完成,对2求余运算,结果为0是偶数,结果为1是奇数。
    自增1、自减1运算符:自增l运算符记为”++”,其功能是使变量的值自增l。自减1运算符记为”一一”,其功能是使变量值自减1。自增1、自减1运算符均为单目运算,都具有右结合性。有以下几种形式:

  • 第22题:

    问答题
    给定程序MODI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。  例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。  请改正程序中的错误,使它能得出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!  给定源程序:#include #include void fun(char *s, char *t){ /*********found*********/ int i; i=0; s1=strlen(s); for(;i

    正确答案:

    (1)错误:int i;
    正确:int i,s1;
    (2)错误:t[i]=s[s1-i];
    正确:t[i]=s[s1-i-1];
    解析:

      错误1:变量s1没有定义。
      错误2:第一个循环实现将s串中的字符逆序存入t串中,si为s的长度,数组s的下标值范围是0~s-1,t[i]对应s串中的s[s1-i-1]。

  • 第23题:

    问答题
    函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。   例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“135”。   注意:部分源程序存在文件PROG1.C中。   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。   给定源程序: #include  #include  void fun(char *s,char t[]) { } main() {  char s[100],t[100];  printf(Please enter string S:);  scanf(%s,s);  fun(s,t);  printf(The result is:%s,t); }

    正确答案:

    void fun(char *s,char t[])
    {
    int i,j=0,n;
    n=strlen(s);
    for(i=0;i<n;i++)
    if(i%2!=0&&s[i]%2!=0)
    {
    t[j]=s[i];
    j++;
    }
    t[j]='\0';
    }
    解析: 定义局部变量i,i%2!=0表明i为奇数,当字符型变量与整数进行相关运算时,等价于该字符变量的ASCII码参与运算,因此s[i]%2!=0表明字符s[i]的ASCII码为奇数。