龙空技术网

某大学C语言期末复习题及答案-1:数组和指针

人菜瘾大小摊 308

前言:

现时你们对“c语言键盘输入数组”大约比较注意,各位老铁们都想要分析一些“c语言键盘输入数组”的相关文章。那么小编在网摘上收集了一些对于“c语言键盘输入数组””的相关知识,希望同学们能喜欢,朋友们快快来学习一下吧!

闲来无事,做做别人家的期末试题,没有答案,自己做的,可能有错,欢迎指正。

【单选题】

#include  <stdio.h>void  fun(int  *s, int  n1,int  n2) {  int  i,j,t; 		i=n1;  j=n2; 		while(i<j)  {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() {  int  a[10]={1,2,3,4,5,6,7,8,9,0},k; 		fun(a,0,3);  fun(a,4,9);  fun(a,0,9); 		for(k=0;k<10;k++)printf("%d",a[k]);    printf("\n"); } 

程序的运行结果是()。

【单选题】【单选题】【单选题】【单选题】【单选题】【单选题】【单选题】【单选题】【单选题】【单选题】【判断题】

char s1[10]; s1[0]='h'; s1[1]='a'; s1[2]='\0';与 char s2[10]="ha";

两段语句效果有区别:

s1数组中除前3个字符外,后面有不确定字符,而s2数组中10个字符是确定的。

【判断题】

数组所占内存单元的大小等于所有元素占用内存单元大小之和。

【判断题】

给一维数组初始化时,可以直接给数组名赋值。

【判断题】

变量的地址,称变量的指针。

【填空题】

如果只用一个下标变量完成逆置,写出程序。

main(){int a[10]={1,2,3,4,5,6,7,8,9,10},i,t; for(i=0;i<______;i++)        { t=a[i];         a[i]=________;         a[9-i]=t;} for(i=0;i<10;i++)           printf("%d  ",a[i]);}
【填空题】

以下函数的功能是删除字符串s中的所有数字字符。请填空。

void dele(char*s){ int n=0,i;   for(i=0;s[i];i++)    if(s[i]<'0'||s[i]>'9')s[n++]=s[i];s[n]=       ; }
【填空题】

以下程序的输出结果为

#include <conio.h>#include <stdio.h>int fun(int *s, int t, int *k) {  int i;    *k=0;    for(i=0;i<t;i++)      if(s[*k]<s[i])    *k=i;        } main() {   int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;     fun(a, 10, &k);    printf("%d, %d\n",k,a[k]);} 
【填空题】

如输入q1s3a28回车,则程序结果是:

# include<stdio.h>int main(void){    int i, number;        char str[10];    /* 输入字符串 */    printf("Enter a string: ");        i = 0;    while((str[i] = getchar( )) != '\n')         i++;     str[i] = '\0';                         number= 0;                              for(i = 0; str[i] != '\0'; i++)             if(str[i] >= '0' &&str[i]<='9')                number=number*10+str[i]-'0';       printf("%d\n",number);    return 0;}    
【填空题】

输入q1w1ra#后回车,写出程序运行结果。

# include<stdio.h>int main(void){    int i,k;    char hexad[80],str[80];    long number;    printf("Enter a string: ");         i = 0;    while((str[i] = getchar( )) != '#')             i++;    str[i] = '\0';                    k= 0;                        for(i = 0; str[i] != '\0'; i++)        if(str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&&str[i]<='F'){            hexad[k] = str[i];  /* 放入新字符串 */            k++;                 }    hexad[k] = '\0';  /* 新字符串结束标记 */      for( i= 0; hexad[i] != '\0'; i++)        putchar(hexad[i]);     number = 0;                     for(i = 0; hexad[i] !='\0'; i++){      /* 逐个转换 */        if(hexad[i] >= '0' &&hexad[i] <= '9')            number = number * 16 + hexad[i] - '0';        else if(hexad[i] >= 'A' &&hexad[i] <= 'F')            number = number * 16 + hexad[i] - 'A' + 10;        else if(hexad[i] >= 'a' &&hexad[i] <= 'f')            number = number * 16 + hexad[i] - 'a' + 10;    }    printf("%ld\n",number);      return 0;}    
【填空题】

以下程序将键盘以'#'为结束符的字符串提取出其中的数字字符('0'、...、‘9’),将其转换为十进制整数输出,如输入:s34de56#<回车>后,结果显示:digit=3456,请在空缺处填空。

# include<stdio.h>int main(void){    int i, number;        char str[20];    printf("Enter a string: ");        i = 0;    while((                                    ) != '#')         i++;     str[i] = '\0';                     number= 0;                             for(i = 0; str[i] != '\0'; i++)             if(str[i] >= '0' &&str[i]<='9')                number=(                         ) +( str[i]-48 )  ;       printf("digit=%d\n",number);    return 0;}    
【填空题】

程序运行结果是

# include <stdio.h>int main (void){    int a = 1, b = 2;    int *pa = &a, *pb = &b;    void swap3 (int *px, int *py);       swap3(pa, pb);                     /* 使用指针pa,pb调用swap3() */    printf ("a=%d b=%d", a, b);     return 0;}void swap3 (int *px, int *py){    int *pt;    pt =px;     px = py;     py = pt;}
【填空题】

以下程序的输出结果是

int main (void){int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14,},{15,16,17,18}};int i=0,j=0,s=0;while (i++<4){if (i==2||i==4) continue; j=0; do {s+=a[i][j];j++;} while (j<4); } printf ("%d\n",s); return 0; }
【填空题】

下列程序的输出结果是

main(){int i, j, row, column,m;static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=array[0][0];for (i=0; i<3; i++)for (j=0; j<3; j++)if (array[i][j]<m){ m=array[i][j]; row=i; column=j;}printf("%d,%d,%d\n",m,row,column);}
【填空题】

以下程序从键盘读入20个数据到数组中,统计其中正数的个数,并计算它们之和,请填空。

int main(void){ int i,a[20],sum,count;sum=count=0;for(i=0; i<20; i++) scanf("%d",____);for(i=0; i<20; i++)if(a[i]>0){ count++;sum+=____;}printf ("sum=%d,count=%d\n",sum,count);return 0;}
【填空题】

以下是个评分统计程序,共有8个评委打分,统计时,去掉一个最高分和一个最低分,其余6个分数的平均分即最后得分,程序最后应显示这个得分,显示精度为2位小数,程序如下,请填空。

int main(void){ float x[8] ={9,2,9,5,9,8,7,4};float aver=0,max,min; int i;for(i=0;i<8;i++)   ____;max=x[0]; min=x[0];for(i=0; i<8; i++){ if(max <x[i]) max=x[i];if(min >x[i])   min=x[i]; }aver=(aver-max-min)/6;printf ("Average %.2f\n",aver);return 0;}
【填空题】

以下程序的功能是输入一个正整数n(1<n≤10),然后输入n个整数,将他们存入数组a中,再输入一个数x,然后在数组中查找x,如果找到,输出相应的最小下标,否则,输出"Not found"。请填空。

int main(void){ int i, index, n, x,a[10];scanf("%d", &n);for(i=0; i<n; i++)         scanf("%d", ____) ;scanf("%d", &x);____;for(i=0; i<n; i++)if(a[i]==x){    index=i;    break;}if(index!=-1)printf(" %d\n", index);elseprintf(" Not found \n");return 0; }

参考答案:

1-5:BDCCD

6-11:DADDBA

12-15:对对错对

16:第一空 10 第二空 a[9-i]

17:'\0'

18:6, 980

19:1328

20:11a282

21:第一空 str[i]=getchar() 第二空 number*10

22:a=1 b=2

23:92

24:-850,2,0

25:第一空 &a[i] 第二空 a[i]

26:aver+=x[i]

27:第一空 &a[i] 第二空 index=-1

标签: #c语言键盘输入数组