?2022年湖北專(zhuān)升本C語(yǔ)言數(shù)組模擬題
摘要:本文是2022年湖北專(zhuān)升本C語(yǔ)言數(shù)組模擬題,共有42道選擇題和11道填空題,供大家參考。具體詳細(xì)內(nèi)容見(jiàn)下文。
一、單項(xiàng)選擇題
1.下列描述中不正確的是( C )。
A) 字符型數(shù)組中可以存放字符串
B) 可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出
C) 可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出
D) 不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符"="對(duì)字符型數(shù)組進(jìn)行整體賦值
2.執(zhí)行下面的程序段后,變量 k 中的值為( A )。
int k=3, s[2];
s[0]=k; k=s[1]*10;
A) 不定值
B) 33
C) 30
D) 10
3.設(shè)有數(shù)組定義: char array[ ]="China"; 則數(shù)組 array 所占的空間為( C )。
A) 4 個(gè)字節(jié)
B) 5 個(gè)字節(jié)
C) 6 個(gè)字節(jié)
D) 7 個(gè)字節(jié)
4.下列程序執(zhí)行后的輸出結(jié)果是( A )。
#include
main()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]=’&’;
printf("%s \n",arr);
}
A) you&me
B) you
C) me
D) err
5.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車(chē)>,輸出結(jié)果是( D )。
main()
{ char s[100];
int c, i;
scanf("%c", &c);
scanf("%d", &i);
scanf("%s", s);
printf("%c, %d, %s\n", c, i, s);
}
A) 123,456,789
B) 1,456,789
C) 1,23,456,789
D) 1,23,456
6.假定 int 類(lèi)型變量占用兩個(gè)字節(jié),若有定義:int x[10]={0,2,4}; 則數(shù)組 x 在內(nèi)存中所占字節(jié)數(shù)是( D)。
A) 3
B) 6
C) 10
D) 20
7.以下程序的輸出結(jié)果是( C)。
main()
{int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258
B) 741
C) 852
D) 369
8.以下數(shù)組定義中不正確的是( D )。
A) int a[2][3];
B) int b[][3]={0,1,2,3};
C) int c[100][100]={0};
D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
9.以下程序的輸出結(jié)果是( A )。
main()
{int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n", a[0][3],a[1][2],a[2][1],a[3][0]);
}
A) 0650
B) 1470
C) 5430
D) 輸出值不定
10.以下程序的輸出結(jié)果是( B )。
#include
main()
{char st[20]="hello\0\t\\\";
printf(%d %d\n", strlen(st),sizeof(st));
}
A) 9 9
B) 5 20
C) 9 20
D) 20 20
11.以下程序的輸出結(jié)果是(B)。
main()
{int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
}
A) 20
B) 21
C) 22
D) 23
12.以下程序的輸出結(jié)果是( C)。
main()
{int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d", x[i][2-i]);
}
A) 159
B) 147
C) 357
D) 369
13.以下程序的輸出結(jié)果是( A )。
main()
{int a[3][3]={{1,2},{3,4},{5,6}}, i, j, s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d\n", s);
}
A) 18
B) 19
C) 20
D) 21
14.以下程序的輸出結(jié)果是( D)。
main()
{char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++) printf("%s\n",w[k]);
}
15.當(dāng)執(zhí)行下面的程序時(shí),如果輸入 ABC,則輸出結(jié)果是( A)。
#include
#include
main()
{char ss[10]="12345";
gets(ss);strcat(ss,"6789");printf("%s\n", ss);
}
A) ABC6789
B) ABC67 C) 12345ABC6
D) ABC456789
16.若要定義 c 為 2×3×4 的三維數(shù)組,正確的定義語(yǔ)句是( A )。
A) float c[2][3][4]
B) float c[2,3,4]
C) float c(2,3,4)
D) float c(2)(3)(4)
17.若定義 int a[2][2]={1,2,3,4},則 a 數(shù)組的各數(shù)組元素值分別為( A )。
A) a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4
B) a[0][0]=1,a[0][1]=3,a[1][0]=2,a[1][1]=4
C) a[0][0]=4,a[0][1]=3,a[1][0]=2,a[1][1]=1
D) a[0][0]=4,a[0][1]=2,a[1][0]=3,a[1][1]=1
18.在下列敘述中,正確的一條是( A )。
A) 以下語(yǔ)句是正確的:char c[]=”ab”;
B) 一維數(shù)組的定義可采用下列格式:int a(10);
C) 下面的語(yǔ)句定義了一個(gè)二維數(shù)組:float a[3,4];
D) 以下兩個(gè)語(yǔ)句中的 a[3][4]的含義相同:int a[3][4]; a[3][4]=1;
19.當(dāng)輸入的數(shù)據(jù)為 2、5 時(shí),以下程序的輸出結(jié)果是( C )。
#include
main()
{int f[100],i,j,k,m;
scanf(“%d%d”,&k,&m);
for(i=0;i<=m;i++) f[i]=0;
f[k-1]=1;
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++)
f[i]+=f[j];
printf(“%d%10d%10d\n”,k,m,f[m]);
}
A) 3 5 5
B) 3 5 7
C) 2 5 5
D) 3 6 9
20.在下列語(yǔ)句中,正確的是(A)。
A) char str[]=”China”;
B) char str[];str=”China”;
C) char str1[5],str2[]={”China”};str1=str2;
D) char str1[],str2[];str2={”China”};strcpy(str1,str2);
21.下面語(yǔ)句中不正確的是( D )。
A) int a[5]={1,2,3,4,5};
B) int a[5]={1,2,3};
C) int a[]={0,0,0,0,0};
D) int a[5]={0*5};
22.若先后輸入 4、1、5、3、7,以下程序的輸出結(jié)果為( D)。
#define MAX 100
main()
{
int i,j,n,flag,t,a[MAX];
printf(“輸入數(shù)據(jù)個(gè)數(shù):”);
scanf(“%d\n”,&n);
for(i=1;i<=n;i++) scanf(“%d”,&a[i]);
for(i=1;i<n;i++)
{flag=1;
for(j=1;j<=n-i;j++)
if(a[j]>a[j+1])
{flag=0;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
if(flag) break;
}
for(i=1;i<=n;i++) printf(“%-3d”,a[i]);
printf(“\n”);
}
A) 2 4 6 7
B) 1 2 3 4
C) 1 5 4 7
D) 1 3 5 7
23.以下程序的輸出結(jié)果是( B )。
main()
{int n,a[10];
for(n=0;n<=9;n++)
a[n]=n;
for(n=9;n>=0;n--)
printf(“%d”,a[n]);
}
A) 1 2 3 4 5 6 7 8 9 10
B) 9 8 7 6 5 4 3 2 1 0
C) 10 9 8 7 6 5 4 3 2 1
D) 0 1 2 3 4 5 6 7 8 9
24.若輸入 aefjhi、c、adfjhijk,以下程序的輸出結(jié)果為(B)。
#include
#include
main()
{int i;
char string[20],str[3][20];
for(i=0;i<3;i++) gets(str[i]);
if(strcmp(str[0],str[1])>0) strcpy(string,str[0]);
else strcpy(string,str[1]);
if(strcmp(str[2],string)>0) strcpy(string,str[2]);
printf(“The largest string is\n%s\n”,string);
}
A) adfjhi
B) c
C) aefjhijk
D) aefjhi
25.以下程序的輸出結(jié)果是( A )。
#include
#include
main()
{char str[12]={’s’,’t’,’r’,’i’,’n’,’g’};
printf(“%d\n”,strlen(str));
}
A) 6
B) 7
C) 11
D) 12
26.有以下程序:
#include
#define N 6
main()
{char c[N];
int i=0;
for(;i<n;c[i]=getchar(),i++);
for(i=0;i<n;putchar(c[i]),i++);
}
輸入以下三行,每行輸入都是在第一列上開(kāi)始,<CD>代表一個(gè)回車(chē)符:
a<CD>
b<CD>
cdef<CD>
程序的輸出結(jié)果是( C)。c[i]={'a','\0','b','\0','c','d'}
A) abcdef
B) a b c d e f
C) a b cd
D) a b d cdef
27.設(shè)有:char str[ ]=“Beijing”; 則執(zhí)行:printf(“
%d\n”, strlen(strcpy(str, “China”)));
后輸出的結(jié)果為( A )。"china"copy to str with '\0',it will stop when the strlen meets with '\0'.
A) 5
B) 7
C) 12
D) 14
28.請(qǐng)選出以下程序的輸出結(jié)果( A)。
#include
main()
{char s1[10],s2[10],s3[10],s4[10];
scanf(“%s%s”,s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
輸入數(shù)據(jù)如下:(此處代表回車(chē)符)
aaaa bbbb
cccc dddd
A) aaaa
bbbb
cccc dddd
B) aaaa
bbbb
cccc
dddd
C) aaaa
bbbb
cccc dddd
eeee
D) aaaa bbbb
cccc
dddd
29.請(qǐng)讀程序:
上面程序的輸出結(jié)果是( A )。
A) 不確定的值
B) 3
C) 2
D) 1
30.請(qǐng)讀程序片段(字符串內(nèi)沒(méi)有空格字符):printf(“%d\n”,strlen(“ATS\n012\1\\”));其輸出結(jié)果應(yīng)為(C)。
A) 11
B) 10
C) 9
D) 12
31.下述對(duì) C 語(yǔ)言字符數(shù)組的描述中錯(cuò)誤的是( C)。
A) 字符數(shù)組可以存放字符串
B) 字符數(shù)組中的字符串可以整體輸入、輸出
C) 可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值
D) 不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較
32.閱讀下列程序:
main()
{int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
printf(“%d\n”,n[1]);
}
上述程序運(yùn)行后,輸出的結(jié)果是( D )。
A) 2
B) 1
C) 0
D) 3
33.以下程序的輸出結(jié)果是(C)。
main()
{int n[3][3], i, j;
for(i=0;i<3;i++)
for(j=0;j<3;j++) n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j];
printf(“%d\n”, n[i][j]);
}
A) 14
B) 0
C) 6
D) 值不確定
34.以下語(yǔ)句的輸出結(jié)果為( A )。
printf(“%d\n”, strlen(“\t\”\065\xff\n”));
A) 5
B) 14
C) 8
D) 輸出項(xiàng)不合法,無(wú)正常輸出
35.合法的數(shù)組定義是( D )。
A) int a[]=”string”;
B) int a[5]={0,1,2,3,4,5};
C) char a=”string”;
D) char a[]={0,1,2,3,4,5};
36.以下程序的輸出結(jié)果是( D )。
main()
{char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++) printf("%s\n", &w[k][k]);
}
37.函數(shù)調(diào)用 strcat( strcpy(str1,str2), str3 )的功能是( C )。
A) 將串 str1 復(fù)制到串 str2 中后再連接到串 str3 之后
B) 將串 str1 連接到串 str2 之后再?gòu)?fù)制到串 str3 之后
C) 將串 str2 復(fù)制到串 str1 中后再將串 str3 連接到串 str1 之后
D) 將串 str2 連接到串 str1 之后再將串 str1 復(fù)制到串 str3 之后
38.有以下定義:
char x[ ]=“abcdefg”;
char y[ ]={‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’};
則正確的敘述為( C )。
A) 數(shù)組 x 和數(shù)組 y 等價(jià)
B) 數(shù)組 x 和數(shù)組 y 的長(zhǎng)度相同
C) 數(shù)組 x 的長(zhǎng)度大于數(shù)組 y 的長(zhǎng)度
D) 數(shù)組 x 的長(zhǎng)度小余數(shù)組 y 的長(zhǎng)度
39.下面程序的運(yùn)行結(jié)果是( C )。
main()
{char ch[7]={"65ab21"};
int i, s=0;
for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)
s=10*s+ch[i]-‘0’;
printf("%d\n", s);
}
A) 12ba56
B) 6521
C) 6
D) 62
40.以下程序運(yùn)行后,輸出結(jié)果是( B )。
main()
{int y=18, i=0, j, a[8];
do
{a[i]=y%2; i++;
y=y/2;
}while(y>=1);
for(j=i-1;j>=0;j--) printf("%d", a[j]);
printf(“\n”);
}
A) 10000
B) 10010
C) 00110
D) 10100
41.以下程序的輸出結(jié)果是( D )。
main()
{int n[5]={0,0,0}, i, k=2;
for(i=0; i
printf("%d\n", n[k]);
}
A) 不確定的值
B) 2
C) 1
D) 0
42.若有定義和語(yǔ)句:char s[10];s=”abcd”;printf(“%s\n”,s);則輸出結(jié)果是( D )。
A) abcd
B) a
C) abc
D) 編譯通不過(guò)
二、填空題
1.下面程序的功能是:將字符數(shù)組 a 中下標(biāo)值為偶數(shù)的元素從小到大排列,其它元素不變。請(qǐng)?zhí)羁铡?/p>
#include
#include
main()
{char a[ ]="clanguage", t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j<k; j=j+2 )
if( a[j]>a[i] )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
printf("\n");
}
2.若有定義語(yǔ)句:char s[100],d[100]; int j=0, i=0;,且 s 中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)字符串拷貝。(注:不得使用逗號(hào)表達(dá)式)
while(s[i]){ d[j]= s[i++];j++;}
d[j]=0;
3.下列程序段的輸出結(jié)果是 Hello。
main()
{ char b[]="Hello,you";
b[5]=0;
printf("%s\n", b);
}
4.若想通過(guò)以下輸入語(yǔ)句使 a 中存放字符串 1234,b 中存放字符 5,則輸入數(shù)據(jù)的形式應(yīng)該是a=1234 b=5。
char a[10], b;
scanf(“a=%s b=%c”, a, &b);
5.以下程序可以把從鍵盤(pán)上輸入的十進(jìn)制數(shù)(long 型)以二到十六進(jìn)制數(shù)的形式輸出,請(qǐng)?zhí)羁铡?/p>
main()
{int b[16]={‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’};
int c[64], d, i=0, base;
long n;
printf(“Enter a number:\n”); scanf(“%ld”, &n);
printf(“Enter new base:\n”); scanf(“%d”, &base);
do
{c[i]= n%base;
i++;
n=n/base;
}while(n!=0);
printf(“Transmite new base:\n”);
for(--i;i>=0;--i)
{d=c[i];
printf("%c", [ d]);
}}
6.以下程序用來(lái)對(duì)從鍵盤(pán)上輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中的第一個(gè)不相同字符的ASCII 碼之差。例如:輸入的兩個(gè)字符串分別為 abcdefg 和 abceef,則輸出為-1。請(qǐng)?zhí)羁铡?/p>
main()
{char str1[100], str2[100], c;
int i, s;
printf(“\n Input string 1:\n”); gets(str1);
printf(“\n Input string 2:\n”); gets(str2);
i=0;
while((str1[i]= =str2[i])&&(str1[i]!= ' \0 ' ))
i++;
s=str1[i]-str2[i];
printf("%d\n", s);
}
7.以下語(yǔ)句的輸出結(jié)果是2。
printf(“%d\n”, strlen(“\t\”\085\xff\n”));
8.對(duì)數(shù)組中的元素值進(jìn)行排序:
main()
{int a[ ]={2,4,15,3,17,5,8,23,9,7,11,13}, i, j, k;
for(k=0;k<12;k++)
for(i=k;i<12;i++)
if(a[i]>a[k])
{j=a[i];
a[i]=a[k];
a[k]=j;
}
for(i=0;i<12;i++)
printf(“%4d”, a[i]);
}
9.由 25 人圍坐成圓圈,先從任意一人出發(fā)用 1 到 25 順時(shí)針依次編號(hào),然后從 1 號(hào)開(kāi)始順時(shí)針報(bào)數(shù)(1、2、3、……),凡報(bào) 5 的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。
#include<stdio.h>
Void main()
{int a[26], j, n, count;
for(j=1;j<=25;j++) a[j]=j;
j=1;count=0;n= 0;
do
{if(a[j]!=0)
{n++;
if(n%5= =0)
{a[j]=0;
if(count= =24) printf(“%d\n”, j);
count++;
}
}
j++;
if(j>25) j=1;
}
while( count<25);
}
10.閱讀下列程序:
main()
{int i, j, row, column, m;
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)< p="">
{m=array[i][j]; row=i; column=j;}
printf("%d, %d, %d\n", m, row, column);
}
上述程序的輸出結(jié)果是 -850,2,0。
11.以下程序的功能是:從鍵盤(pán)上輸入若干個(gè)學(xué)生的成績(jī),計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。請(qǐng)?zhí)羁铡?/p>
main()
{float x[1000], sum=0.0, ave, a;
int i, n=0;
printf(“Enter mark:\n”); scanf(“%f”, &a);
while(a>=0.0&&n<1000)
{sum+=a; x[n]=a; n++; scanf(“%f”, &a);}
ave=sum/n;
printf(“Output:\n”);
printf(“ave=%f\n”, ave);
for(i=0;i<n;i++)< p="">
if(ave>a[i]) printf(“%f\n”, x[i]);
}
延伸閱讀
- 2022年湖北專(zhuān)升本電路模擬題(四)
- 2022年湖北專(zhuān)升本電路模擬題(三)
- 2022年湖北專(zhuān)升本電路模擬題(二)
- 2022年湖北專(zhuān)升本電路模擬題(一)
- 2022年湖北專(zhuān)升本高等數(shù)學(xué)模擬題(三)
- 2022年湖北專(zhuān)升本高等數(shù)學(xué)模擬題(二)
專(zhuān)升本微信公眾號(hào)
掃碼添加
專(zhuān)升本備考資料免費(fèi)領(lǐng)取
去領(lǐng)取