当前位置:文档之家› C语言程序设计单元测试题三

C语言程序设计单元测试题三

C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。

一、选择题1.以下为一维整型数组a的正确说明是_________.A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.A)int a[3][]; B)float a(3,4);C)double a[1][4] D)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。

)A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+15.25.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.A)gets(a,B); B)scanf("%s%s",a,B);C)scanf("%s%s",&a,&B); D)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,B);printf("%c",a[5]);A)空格B)\0 C)e D)f8.判断字符串s1是否大于字符串s2,应当使用_______.A)if(s1>s2) B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。

#include <stdio.h>main(){char s[80],c1,c2='';int i=0,num=0;gets(s);while(s[i]!='\0'){c1=s[i];if(i==0)c2='';else c2=s[i-1];if(___)num++i++;}</P< p>printf("There are %d words.\n",num);}A)c1==''&&c2=='' B)c1!=''&&c2==''C)c1==''&&c2!='' D)c1!=''&&c2!=''10.下面程序的运行结果是________.#include <stdio.h>main(){char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k])!='\0';k++){switch(C){case 'I':++k;break;case 'L':continue;default:putchar(C);continue;}putchar('*');}}A)SSW* B)SW* C)SW*A D)SW11.以下正确的说法是_________.建立函数的目的之一是A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存12.以下正确的函数定义形式是________.A)double fun(int x,int y) B)double fun(int x; int y)C)double fun(int x, int y); D)double fun(int x,y);13.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为______.A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)由用户指定传递方式14.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是______.A)float B)int C)long D)double15.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array 的错误定义方式为________.int a[3][4];f(A);A)f(int array[][6]) B)f(int array[3][])C)f(int array[][4]) D)f(int array[2][5])16.以下程序的正确运行结果是_________.#include <stdio.h>void num()</P< p>{extern int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;main(){int a=7,b=5;x=a+b;y=a-b;num();printf("%d,%d\n",x,y);}A)12,2 B)不确定C)5,25 D)1,1217. 以下对一维整型数组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];18. 若有说明:int a[10];则对a数组元素的正确引用是_________。

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

A)int a[10]=(0,0,0,0,0) B)int a[10]={};C)int a[ ]={0}; D)int a[10]={10*1};20.下面程序段的运行结果是_________。

char a[7]=”abcdef”;char b[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A)[空格] B)\0 C)e D)f21.对两个数组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数组长度长22. 对以下说明语句的正确理解是_________。

int a[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5]B)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确23. 若二维数组a有m列,则在a[i][j]前的元素个数为_________。

A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+124. 若有以下程序段:……int a[ ]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;……}则该程序段的功能是_________。

A)对数组a进行插入排序(升序)B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序)D)对数组a进行选择排序(降序)25. 下面是对s的初始化,其中不正确的是_________。

A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’};C)char s[5]=””; D)char s[5]=”abcdef”;二、填空题1.若有定义:double x[3][5];则x数组中行下标的下限为____【1】_____,列下标的上限为____【2】_____.2.下面程序以每行4个数据的形式输出a数组,请填空。

#define N 20main(){int a[N],i;for(i=0;i<N;i++)scanf("%d",____【3】___);for(i=0i<N;i++){if (______【4】_______) _____【5】________printf("%3d",a[i]);}printf("\n");}3. 下面程序可求出矩阵a的主对角线上的元素之和,请填空。

main(){int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(___【6】__)sum=sum+___【7】____;printf("sum=%d\n",sum);}4. 当从键盘输入18并回车后,下面程序的运行结果是___【8】_____.main(){int x,y,i,a[8],j,u,v;scanf("%d",&x);y=x;i=0;do{u=y/2;a[i]=y%2;i++;y=u;}while(y>=1)for(j=i-1;j>=0;j--)printf("%d",a[j]);</P< p>}5. 下面程序用插入法对数组a进行降序排序。

请填空。

main(){int a[5]={4,7,2,5,1};int i,j,m;for(i=1;i<5;i++){m=a[i];j=____;【9】while(j>=0&&m>a[j]){_______;【10】j--;}_______=m; 【11】}for(i=0;i<5;i++)printf("%d",a[i]);printf("\n");}6. 下面程序的功能是在三个字符串中找出最小的,请填空。

相关主题