




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年廣東省深圳市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項(xiàng)是()。
A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s
2.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達(dá)式的值為0B.循環(huán)控制表達(dá)式的值為1C.循環(huán)控制表達(dá)式不合法D.以上說法都不對(duì)
3.fgetc函數(shù)的作用是從指定文件讀入—個(gè)字符,該文件的打開方式必須是______。
A.只讀B.追加C.讀或讀寫D.以上均正確
4.
5.設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A.6B.8C.9D.12
6.若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x一y)(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)
7.有如下程序段:
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B'):
執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1
8.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
9.對(duì)線性表進(jìn)行折半查找時(shí),必須要求線性表()。
A.順序方式存儲(chǔ)B.鏈?zhǔn)椒绞酱鎯?chǔ)C.以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列D.以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
10.每次從無序表中挑選出一個(gè)最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。
A.插入B.堆C.快速D.歸并排序
11.下列程序的輸出結(jié)果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}A.A.3B.4C.5D.6
12.以下關(guān)于注釋的敘述中錯(cuò)誤的是()。
A.注釋的邊界符號(hào)“/”和“*”之間不允許加入空格
B.C語言允許注釋出現(xiàn)在程序中任意合適的地方
C.注釋的內(nèi)容僅用于閱讀,對(duì)程序的運(yùn)行不起作用
D.注釋的邊界符號(hào)“/*”和“*/”必須成對(duì)出現(xiàn)且可以嵌套
13.若用一個(gè)大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為多少()。
A.1和5B.2和4C.4和2D.5和1
14.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運(yùn)行的結(jié)果是()。A.9B.61490C.61D.5
15.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
16.假設(shè)把整數(shù)關(guān)鍵碼K散列到有N個(gè)槽的散列表,以下哪些散列函數(shù)是好的散列函數(shù)()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一個(gè)0到N-1的整數(shù)
17.棧這種數(shù)據(jù)結(jié)構(gòu)一般應(yīng)用在()。
A.遞歸調(diào)用B.子程序調(diào)用C.表達(dá)式求值D.A,B,C
18.如果最常用的操作是取第i個(gè)結(jié)點(diǎn)及其前驅(qū),最節(jié)省時(shí)間的存儲(chǔ)方式是()。
A.單鏈表B.雙向鏈表C.單循環(huán)鏈表D.順序表
19.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
20.設(shè)S為一個(gè)長度為n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不同于S本身)的個(gè)數(shù)為()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
二、2.填空題(20題)21.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
22.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
24.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
25.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
26.funl函數(shù)的調(diào)用語句為:fun1(&a,&b,&c);它將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c這3個(gè)變量中,a中放最大數(shù)。
voidfun2(int*x,int*y)
{intt;
t=*x;*X=*y;*y=t;
}
voidfunl(int*pa,int*pb,int*pc)
{if(*pc>*pb)fun2(【】);
if(*pa<*pc)fun2(【】);
if(*pa<*pb)fun2(【】);
}
27.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。
28.以下程序的功能是從鍵盤上輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸出該字符串。請(qǐng)?zhí)羁铡?/p>
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=【】;
sptr=str1
while(*sptr)putchar(*sptr【】);
}
29.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
30.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
31.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
32.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
33.在關(guān)系模型中,二維表的行稱為______。
34.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
35.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
36.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
37.算法的復(fù)雜度主要包括空間復(fù)雜度和______復(fù)雜度。
38.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
39.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
40.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
func(a,B)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main0
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
三、1.選擇題(20題)41.有定義語句:chars[10];,若要從終端給s輸入5個(gè)字符,錯(cuò)誤的輸入語句是
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
42.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的甲—向鏈表,并將存儲(chǔ)在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選項(xiàng)中選擇出正確的選項(xiàng)。
#include<stdlib.h>
structnode
{chardata;structnode*next:};
(1)CreatList(char*s)
{
structnode*h,*p,*q;
h=(structnode*)mallocsizeof(structnode));
p=q=h;
while(*s!='\0')
{
p=(structnode*)malloc(sizeof(structnode));
p->data=(2);
q->next=p;
q-(3);
S++;
}
p->next='\0';
returnh;
}
main()
{
charstr[]="linklist";
structnode*head;
head=CreatList(str);
}
(1)
A.char*B.structnodeC.structnode*D.char
43.設(shè)已有定義:floatx;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是A.float*p=1024;
B.int*p=(float)x;
C.floatp=&x;
D.float*P=&x;
44.在16位編譯系統(tǒng)上,若有定義inta[]={10,20,30},*p=&a;,當(dāng)執(zhí)行p++;后,下列說法錯(cuò)誤的是A.p向高地址移了一個(gè)字節(jié)B.p向高地址移了一個(gè)存儲(chǔ)單元C.p向高地址移了兩個(gè)字節(jié)D.p與a+1等價(jià)
45.當(dāng)把以下四個(gè)表達(dá)式用作if語句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其他三個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是______。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
46.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。
A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
47.在下列語句中,其含義為“q為一個(gè)指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q)0;C.int*q;D.int*q();
48.一個(gè)算法應(yīng)該具有“確定性”等5個(gè)特性,下面對(duì)另外4個(gè)特性的描述中錯(cuò)誤的是()A.有零個(gè)或多個(gè)輸入B.有零個(gè)或多個(gè)輸出C.有窮性D.可行性
49.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char為指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的。號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
50.在c語言中,變量的隱含存儲(chǔ)類別是()。
A.autoB.staticC.externD.無存儲(chǔ)類別
51.下列程序的輸出結(jié)果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
52.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是______。
A.程序的規(guī)模B.程序的易讀性C.程序的執(zhí)行效率D.程序的可移植性
53.下列二維數(shù)組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價(jià)的是
A.floata[2][]={{0,3,8},{0,9}};
B.floata[][3]={0,3,8,0,9,0};
C.floata[][3]={{0,3},{8,0},{9,0}};
D.floata[2][]={{0,3,8},{0,9,0}};
54.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
55.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>A)||(m=a<B);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是
A.0,0B.0,1C.1,0D.1,1
56.在計(jì)算機(jī)中,算法是指()。
A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法
57.若有"doublea;",則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
58.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}
A.12B.23C.14D.32
59.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是______。
A.0B.0.25C.0.5D.1
60.以下敘述錯(cuò)誤的是()。
A.變量的作用域取決于變量定義語句的位置
B.全局變量可以在函數(shù)以外的任何部位進(jìn)行定義
C.局部變量的作用域可用于其他函數(shù)的調(diào)用
D.一個(gè)變量說明為static存儲(chǔ)類型是為了限制其他編譯單元的引用
四、選擇題(20題)61.
62.有以下程序:
i
程序運(yùn)行后的輸出結(jié)果是()。。,
A.3,4B.4,1C.2,3D.1,2
63.
下列程序的輸出的結(jié)果是()。
main
{doubled=3.2;intx,Y;
x=1.2;v=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
64.
65.
66.
67.
68.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、P、q、均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。該程序段實(shí)現(xiàn)的功能是()。
A.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.刪除尾結(jié)點(diǎn)
69.
有以下程序,其中函數(shù)f的功能是將多個(gè)字符串按字典順序排序()。
#include<string.h>
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]
=t;}
}
main
{char*P[5]={"abe","aabdfg","abbd","dcd-
be","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序運(yùn)行后的輸出結(jié)果是()o
A.2B.3C.6D.4
70.
71.計(jì)算機(jī)的內(nèi)存儲(chǔ)器比外存器()
A.價(jià)格便宜B.存儲(chǔ)容量大C.讀寫速度快D.讀寫速度慢
72.下面不屬于軟件工程三要素的是()。
A.方法B.環(huán)境C.工具D.過程
73.有以下程序程序運(yùn)托舌的輸出結(jié)果是()。
A.1,2B.1,0C.3,2D.0,0
74.有以下程序
#include<stdio.h>
main()
{inti=5;
do
{if(i%3==1)
if(i%5==2)
{printf("*%d",i);break;}
i++;
}while(i!=0);
printf("\n");
}
程序的運(yùn)行結(jié)果是
A.*7B.*3*5
C.*5D.*2*6
75.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流
76.若有以下說明和語句,請(qǐng)選出哪個(gè)是對(duì)C數(shù)組元素的正確引用()。
A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)
77.有以下程序
#include<stdio.h>
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i<N;i++)
b[i]=a[i][i];
}
main()
{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序的運(yùn)行結(jié)果是
A.l,2,3,4,
B.1,0,7,0,
C.1,4,5,9,
D.3,4,8,10,
78.
79.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲(chǔ)空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式
D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*s,char*t)
{
inti,s1;
s1=strlen(s);
for(i=0;i<s1;i++)
//****found****
t[i]=s[s1];
for(i=0;i<s1;i++)
t[s1+i]一s[i];
t[2*s1]=\O0;
}
voidmain
{
chars[100],t[100];
system("CLS");
print{("\nPleaseenterstrings:");
scanf("%s",s);
proc(s,t);
printf("Theresultis:%s\n",t);
}
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:將兩個(gè)兩位數(shù)的正整數(shù)num1,num2合并形成一個(gè)整數(shù)放在num中。合并的方式是:將num1數(shù)的十位和個(gè)位數(shù)依次放在num數(shù)的十位和千位上,num2數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。
例如,當(dāng)num1=64,num2=18時(shí),調(diào)用到該函數(shù)后,num=4168。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。
試題程序:
參考答案
1.B函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個(gè)元素。取指針的值,使用*P,因此比較使用*P和*s,又因?yàn)檎易畲笾?,?dāng)*s<*p時(shí),修改指針s的指向。故本題答案為B選項(xiàng)。
2.B解析:t=1是將t賦值為1,所以循環(huán)控制表達(dá)式的值為1。判斷t是否等于1時(shí),應(yīng)用t==1,注意“=”與“==”的用法。
3.D解析:fgetc函數(shù)是指從指定的文件讀入—個(gè)字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。
4.A
5.CC。R為n元關(guān)系,有P個(gè)元組S為m元關(guān)系,有q個(gè)元組。兩個(gè)關(guān)系笛卡兒積是一個(gè)n+m元的關(guān)系,元組個(gè)數(shù)是q×p。所以T的元組的個(gè)數(shù)為9個(gè)。
6.A條件表達(dá)式:x=表達(dá)式1,表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y等價(jià)的是(x-y>0)。
7.D在C語言中,當(dāng)表達(dá)式成立時(shí)用l表示,不成立時(shí)用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故選擇D選項(xiàng)。
8.C
9.C
10.B
11.B
12.D在編寫程序時(shí)可以在程序中加入注釋。在添加注釋時(shí),注釋內(nèi)容必須放在符號(hào)“/*”和“*/”之間,“/*”和“*/”必須成對(duì)出現(xiàn),“/*”與“*/”之間不可以有空格,選項(xiàng)A正確;注釋可以用英文,可以用中文,可以出現(xiàn)在程序中任意合適的地方,選項(xiàng)B正確;注釋部分只適用于閱讀,對(duì)程序的運(yùn)行不起作用,選項(xiàng)C正確;使用“/*”和“*/”的注釋之間不可再嵌套“/*”和“*/”,選項(xiàng)D錯(cuò)誤。故本題答案為D選項(xiàng)。
13.B
14.C在fun函數(shù)中,while循環(huán)的功能是逐個(gè)取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個(gè)數(shù)保存到變量n中,并返回變量n的值。
15.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
16.A
17.D
18.D
19.Dfun函數(shù)的功能是對(duì)數(shù)組a[]的元素從大到小進(jìn)行排序。
20.D
21.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
22.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
23.09182736450918273645解析:題目中為for循環(huán)定義了兩個(gè)字符型循環(huán)變量c1和c2,循環(huán)開始時(shí)分別初始化為字符‘0’和‘9’,然后每次循環(huán)結(jié)束給c1增1、c2減l,循環(huán)條件為c1<c2,即讓c1的值依次為‘0’、‘1’、‘2’…,c2的值依次為‘9’、‘8’、‘7’…,直到兩個(gè)數(shù)相遇時(shí)結(jié)束循環(huán)。又因?yàn)樵撗h(huán)的循環(huán)體每次按字符形式輸出c1和c2的值。所以最終的輸出結(jié)果為:0918273645。
24.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時(shí),j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。
25.str[i]或str+iistr[i]或str+i\r\ni
26.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb
27.1616解析:函數(shù)運(yùn)算不改變數(shù)據(jù)類型,所以結(jié)果也是double型,fabs(x)是對(duì)x取絕對(duì)值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結(jié)果為double型)。
28.\0'++
29.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
30.BB解析:因?yàn)閏是字符類型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
31.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
32.8888解析:C語言規(guī)定,以0開頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)中,%X表示以十六進(jìn)制無符號(hào)形式輸出一個(gè)整數(shù),且十六進(jìn)制中的ABCDEF為大寫字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880
33.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。
34.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
35.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。
36.HelloHello解析:字符串中,數(shù)值0或符號(hào)'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。
37.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。
38.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)
39.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個(gè)switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個(gè)復(fù)合switch語句:這時(shí)執(zhí)行第二個(gè)switch語句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個(gè)switch語句,則整個(gè)case1的復(fù)合語句執(zhí)行完畢,由于在這個(gè)case1的后面沒有break語句使其退出第一個(gè)switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。
40.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時(shí),m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因?yàn)樵谧雍瘮?shù)中將m和i定義成了static類型,所以在子函數(shù)中對(duì)m和i進(jìn)行的改變,在下一次調(diào)用子函數(shù)時(shí)能進(jìn)行保存,所以第二次調(diào)用子函數(shù)時(shí),m=11,i==3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
41.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個(gè)值的表達(dá)式。
42.C
43.D解析:指針指向的是變量的地址而不是常量,所以選項(xiàng)A是錯(cuò)誤的;選項(xiàng)B同樣是將float類型變量的值賦給指針而不是地址,所以選項(xiàng)B也是錯(cuò)誤的。定義指針變量前面必須有星號(hào)(*),如果省略了就變成了把p定義為實(shí)型變量,所以選項(xiàng)C不正確。
44.A解析:在16位編譯系統(tǒng)下,一個(gè)int型變量是用16位來存儲(chǔ)的,其占用兩個(gè)字節(jié),當(dāng)執(zhí)行p++之后,相當(dāng)于p向高位移動(dòng)了一個(gè)存儲(chǔ)單元,也就是兩個(gè)字節(jié)。因此,本題的答案為選項(xiàng)A)。
45.D解析:本題考查的是判斷奇偶數(shù)。選項(xiàng)A、B和c中都是當(dāng)k是奇數(shù)時(shí)表達(dá)式的值為1,否則為0。而選項(xiàng)D中因?yàn)檫壿嫹?運(yùn)算符的優(yōu)先級(jí)最高,所以當(dāng)k為0的時(shí)候,k的值為1,整個(gè)表達(dá)式的值也就是1,而當(dāng)k為非。的時(shí)候!k的值為0,整個(gè)表達(dá)式的值為0。所以本題應(yīng)該選擇D。
46.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。
47.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。
48.B解析:本題考核的知識(shí)點(diǎn)是算法的性質(zhì)。算法是為解決某個(gè)特定問題而采取的確定的且有限的步驟,一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)基本特性:1.有窮性,就是指一個(gè)算法應(yīng)當(dāng)包含有限個(gè)操作步驟。2.確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對(duì)于相同的輸入必能得出相同的執(zhí)行結(jié)果。3.有零個(gè)或多個(gè)輸入。4.可行性,就是說算法中指定的操作,都可以通過已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次實(shí)現(xiàn),5.有一個(gè)或多個(gè)輸出。由此可知選項(xiàng)B不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
49.A解析:C語言中[]比:優(yōu)先級(jí)高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個(gè)元素,然后再與line前面的“*”結(jié)合,表示此數(shù)組是一個(gè)指針數(shù)組,每個(gè)數(shù)組元素都是一個(gè)基類型為char的指針變量。
50.A解析:auto變量:無static聲明的局部變量。用auto作存儲(chǔ)類別的聲明時(shí),可以不寫auto,存儲(chǔ)類別隱含確定為auto(自動(dòng)存儲(chǔ)類別),是動(dòng)態(tài)存儲(chǔ)方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲(chǔ)單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實(shí)際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動(dòng)存儲(chǔ)類別',屬于動(dòng)態(tài)存儲(chǔ)方式。
51.B解析:若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。
52.B解析:采用結(jié)構(gòu)化編程方法的好處主要在于:一是便于控制、降低程序的復(fù)雜性,因此便于編寫程序。二是程序清晰易讀,可理解性好。因此,結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是程序的易讀性,而不是程序的規(guī)模、程序的執(zhí)行效率和程序的可移植性。
53.B解析:在選項(xiàng)B)中,因?yàn)閿?shù)組的第一維的數(shù)目不明確,所以理解會(huì)有歧義,可以理解為1行3列,或者2行3列等。所以選項(xiàng)B)錯(cuò)誤。注意:數(shù)組中元素的引用。
54.C解析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個(gè)case后面的常量的表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語句,若所有的case中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行default后面的語句。
55.C解析:本題考查“邏輯或”運(yùn)算的特例。本題中執(zhí)行語句k=(n=b>a)||(m=a<b)時(shí),首先計(jì)算表達(dá)式(n=b>a)||(m=a<b)的值,因b=2,a=1,所以b>a成立,即得n=1,故表達(dá)式(n=b>a)||(m=a<b)的值為真,不再執(zhí)行表達(dá)式m=a<b,故執(zhí)行完表達(dá)式k=(n=b2>a)||(m=a<b)后,n=1、m=0、k=1。
56.CC?!窘馕觥坑?jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報(bào)。
57.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
58.D解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。
C語言中結(jié)構(gòu)體的定義為:
struct結(jié)構(gòu)題類型名
{
成員項(xiàng)表;
};
59.C解析:本題考查的是if...else語句的使用。x=2.0,符合第二個(gè)IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。
60.D解析:本題考查函數(shù)調(diào)用的變量作用域。全局變量不在任何函數(shù)體內(nèi)定義,作用域?yàn)檎麄€(gè)文件;局部變量在函數(shù)體內(nèi)定義,作用域僅為本次函數(shù);static類型是靜態(tài)變量,為了方便其他編譯單元的引用,不能隨意改變。一個(gè)函數(shù)包含兩部分:函數(shù)首和函數(shù)體,函數(shù)體包括花括號(hào)內(nèi)的所有語句。
61.B
62.C本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作,dt為結(jié)構(gòu)體數(shù)組,那么指針P指向了結(jié)構(gòu)體數(shù)組的一個(gè)元素,所以P一>x為1,P一>Y為2,結(jié)果為2,3。選項(xiàng)C正確。
63.C
\n根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因?yàn)閤的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時(shí),即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進(jìn)行除法運(yùn)算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項(xiàng)。
\n
64.D
65.A
66.A
67.B
68.A循環(huán)找到末尾結(jié)點(diǎn),然后賦值給第一個(gè)結(jié)點(diǎn),所以選擇A)。
69.B
\n函數(shù)voidf的功能是將字符指針數(shù)組*p[]中的每個(gè)字符串按照從小到大的順序排序。在主函數(shù)main中,調(diào)用f(P,5)后,字符指針數(shù)組*p[5]中的字符串按照字典順序從小到大排列為如下形式,即*p[5]={'aab-dfg','abbd','abc','cd','dcdbe'),因此P[1]='abdb',strlen(p[1])=4。
\n
70.B
71.C
72.B\n軟件工程包括三個(gè)要素:方法、工具和過程。軟件工程方法為軟件開發(fā)提供了”如何做”的技術(shù)。工具支付軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。
\n
73.A首先打印b=a+b=1+0--1的值l,此時(shí)已給b賦值為l。然后打印a:2*b:2"1:2的值2。因此結(jié)果是1,2。
74.A本題考查C語言中對(duì)整數(shù)求余數(shù)運(yùn)算。運(yùn)算符“%”是兩個(gè)數(shù)相除后取余數(shù)。分析本題的程序,main函數(shù)中的主體為一個(gè)do-while循環(huán),該循環(huán)的終止條件為i==0。do-while循環(huán)內(nèi)部起始為一個(gè)if語句,該語句包含一個(gè)if子語句,外層if語句的判斷條件是i%3==1,表示i的取值范圍為{1,4,7,11,…},內(nèi)部if子語句的判斷條件為i%5==2,表示i的取值范圍為{2,7,12,…}。如果外層和內(nèi)層的if語句的條件都滿足,則執(zhí)行語句printf('*%d',i);break;,該語句輸出*i形式的結(jié)果并跳出do-while循環(huán)。如果兩個(gè)if語句有一個(gè)條件不滿足,則執(zhí)行i++操作,繼續(xù)執(zhí)行do-while循環(huán)。i的初始值為5,只有滿足兩個(gè)if語句條件時(shí)才能夠跳出do-while循環(huán),即當(dāng)i=7時(shí),循環(huán)結(jié)束,輸出結(jié)果為*7。
75.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。數(shù)據(jù)流圖中的主要的圖形元素與說明如下:
加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。
數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
存儲(chǔ)文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。
源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。
76.B本題的考查點(diǎn)是數(shù)組元素的引用。cp=c這個(gè)語句是將數(shù)組c的首行元素地址賦給了指針數(shù)組cp。選項(xiàng)A,cp+1是指將數(shù)組c的首行地址加l,即為第二行地址;選項(xiàng)B,*(cp+3)是地址,等于數(shù)組C的首地址加3的那個(gè)內(nèi)存單元的內(nèi)容,不是對(duì)數(shù)組元素的引用;選項(xiàng)C,*(cp+1)+3是地址,等于數(shù)組C的首地址加1的那個(gè)內(nèi)存單元中存放的值加3,不是對(duì)數(shù)組元素的引用。
77.B本題考查二維數(shù)組的相關(guān)操作。程序主要包括兩個(gè)部分:主函數(shù)部分和fun函數(shù)。主函數(shù)初始給出了一個(gè)4×4的二維矩陣,并對(duì)每一行賦初值,可以看出每一行都要有4個(gè)元素,而對(duì)于給出的初值個(gè)數(shù)不滿足4個(gè)的,要先從第一列開始將各個(gè)值賦給各列,不足的部分用0補(bǔ)齊。函數(shù)fun的作用是將二維矩陣a中行號(hào)與列號(hào)相同的數(shù)據(jù)賦值給一維矩陣y,y的下標(biāo)與該數(shù)據(jù)在a中的行號(hào)相同。題目所要求解的即通過printf函數(shù)將矩陣y中的元素按照順序輸出。本題中二維矩陣a初始化后為{{1,2,3,0},{4,0,0,0},{5,6,7,8},{9,10,0,0}}。將行號(hào)與列號(hào)相同的元素賦給y,則y矩陣的數(shù)據(jù)為{1,0,7,0},輸出即可得到結(jié)果。
78.D
79.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
80.A
81.\n\t錯(cuò)誤:t[i]=s[l];
\n正確:t[i]=s[i];
\n【解析】函數(shù)proc首先要實(shí)現(xiàn)將數(shù)組s中的元素順序放在數(shù)組t中,即數(shù)組t中下標(biāo)為i的元素在數(shù)組S中下標(biāo)也為i,因此“t[i]=s[s1];”應(yīng)改為“t[i]=s[i];”。\n
82.
【解析】要算出變量num的值,首先需要得到變量num1和hum2個(gè)位和十位上的數(shù)字。然后將在千位上的數(shù)字乘以1000,百位上的數(shù)字乘以100,十位上的數(shù)字乘以10,各位上的數(shù)字乘以1,就能得到要求的hum。
2021-2022年廣東省深圳市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項(xiàng)是()。
A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s
2.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達(dá)式的值為0B.循環(huán)控制表達(dá)式的值為1C.循環(huán)控制表達(dá)式不合法D.以上說法都不對(duì)
3.fgetc函數(shù)的作用是從指定文件讀入—個(gè)字符,該文件的打開方式必須是______。
A.只讀B.追加C.讀或讀寫D.以上均正確
4.
5.設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A.6B.8C.9D.12
6.若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x一y)(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)
7.有如下程序段:
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B'):
執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1
8.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
9.對(duì)線性表進(jìn)行折半查找時(shí),必須要求線性表()。
A.順序方式存儲(chǔ)B.鏈?zhǔn)椒绞酱鎯?chǔ)C.以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列D.以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
10.每次從無序表中挑選出一個(gè)最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。
A.插入B.堆C.快速D.歸并排序
11.下列程序的輸出結(jié)果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}A.A.3B.4C.5D.6
12.以下關(guān)于注釋的敘述中錯(cuò)誤的是()。
A.注釋的邊界符號(hào)“/”和“*”之間不允許加入空格
B.C語言允許注釋出現(xiàn)在程序中任意合適的地方
C.注釋的內(nèi)容僅用于閱讀,對(duì)程序的運(yùn)行不起作用
D.注釋的邊界符號(hào)“/*”和“*/”必須成對(duì)出現(xiàn)且可以嵌套
13.若用一個(gè)大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為多少()。
A.1和5B.2和4C.4和2D.5和1
14.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運(yùn)行的結(jié)果是()。A.9B.61490C.61D.5
15.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
16.假設(shè)把整數(shù)關(guān)鍵碼K散列到有N個(gè)槽的散列表,以下哪些散列函數(shù)是好的散列函數(shù)()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一個(gè)0到N-1的整數(shù)
17.棧這種數(shù)據(jù)結(jié)構(gòu)一般應(yīng)用在()。
A.遞歸調(diào)用B.子程序調(diào)用C.表達(dá)式求值D.A,B,C
18.如果最常用的操作是取第i個(gè)結(jié)點(diǎn)及其前驅(qū),最節(jié)省時(shí)間的存儲(chǔ)方式是()。
A.單鏈表B.雙向鏈表C.單循環(huán)鏈表D.順序表
19.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
20.設(shè)S為一個(gè)長度為n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不同于S本身)的個(gè)數(shù)為()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
二、2.填空題(20題)21.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
22.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
24.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
25.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
26.funl函數(shù)的調(diào)用語句為:fun1(&a,&b,&c);它將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c這3個(gè)變量中,a中放最大數(shù)。
voidfun2(int*x,int*y)
{intt;
t=*x;*X=*y;*y=t;
}
voidfunl(int*pa,int*pb,int*pc)
{if(*pc>*pb)fun2(【】);
if(*pa<*pc)fun2(【】);
if(*pa<*pb)fun2(【】);
}
27.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。
28.以下程序的功能是從鍵盤上輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸出該字符串。請(qǐng)?zhí)羁铡?/p>
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=【】;
sptr=str1
while(*sptr)putchar(*sptr【】);
}
29.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
30.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
31.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
32.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
33.在關(guān)系模型中,二維表的行稱為______。
34.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
35.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
36.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
37.算法的復(fù)雜度主要包括空間復(fù)雜度和______復(fù)雜度。
38.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
39.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
40.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
func(a,B)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main0
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
三、1.選擇題(20題)41.有定義語句:chars[10];,若要從終端給s輸入5個(gè)字符,錯(cuò)誤的輸入語句是
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
42.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的甲—向鏈表,并將存儲(chǔ)在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選項(xiàng)中選擇出正確的選項(xiàng)。
#include<stdlib.h>
structnode
{chardata;structnode*next:};
(1)CreatList(char*s)
{
structnode*h,*p,*q;
h=(structnode*)mallocsizeof(structnode));
p=q=h;
while(*s!='\0')
{
p=(structnode*)malloc(sizeof(structnode));
p->data=(2);
q->next=p;
q-(3);
S++;
}
p->next='\0';
returnh;
}
main()
{
charstr[]="linklist";
structnode*head;
head=CreatList(str);
}
(1)
A.char*B.structnodeC.structnode*D.char
43.設(shè)已有定義:floatx;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是A.float*p=1024;
B.int*p=(float)x;
C.floatp=&x;
D.float*P=&x;
44.在16位編譯系統(tǒng)上,若有定義inta[]={10,20,30},*p=&a;,當(dāng)執(zhí)行p++;后,下列說法錯(cuò)誤的是A.p向高地址移了一個(gè)字節(jié)B.p向高地址移了一個(gè)存儲(chǔ)單元C.p向高地址移了兩個(gè)字節(jié)D.p與a+1等價(jià)
45.當(dāng)把以下四個(gè)表達(dá)式用作if語句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其他三個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是______。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
46.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。
A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
47.在下列語句中,其含義為“q為一個(gè)指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q)0;C.int*q;D.int*q();
48.一個(gè)算法應(yīng)該具有“確定性”等5個(gè)特性,下面對(duì)另外4個(gè)特性的描述中錯(cuò)誤的是()A.有零個(gè)或多個(gè)輸入B.有零個(gè)或多個(gè)輸出C.有窮性D.可行性
49.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char為指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的。號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
50.在c語言中,變量的隱含存儲(chǔ)類別是()。
A.autoB.staticC.externD.無存儲(chǔ)類別
51.下列程序的輸出結(jié)果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
52.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是______。
A.程序的規(guī)模B.程序的易讀性C.程序的執(zhí)行效率D.程序的可移植性
53.下列二維數(shù)組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價(jià)的是
A.floata[2][]={{0,3,8},{0,9}};
B.floata[][3]={0,3,8,0,9,0};
C.floata[][3]={{0,3},{8,0},{9,0}};
D.floata[2][]={{0,3,8},{0,9,0}};
54.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
55.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>A)||(m=a<B);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是
A.0,0B.0,1C.1,0D.1,1
56.在計(jì)算機(jī)中,算法是指()。
A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法
57.若有"doublea;",則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
58.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}
A.12B.23C.14D.32
59.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是______。
A.0B.0.25C.0.5D.1
60.以下敘述錯(cuò)誤的是()。
A.變量的作用域取決于變量定義語句的位置
B.全局變量可以在函數(shù)以外的任何部位進(jìn)行定義
C.局部變量的作用域可用于其他函數(shù)的調(diào)用
D.一個(gè)變量說明為static存儲(chǔ)類型是為了限制其他編譯單元的引用
四、選擇題(20題)61.
62.有以下程序:
i
程序運(yùn)行后的輸出結(jié)果是()。。,
A.3,4B.4,1C.2,3D.1,2
63.
下列程序的輸出的結(jié)果是()。
main
{doubled=3.2;intx,Y;
x=1.2;v=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
64.
65.
66.
67.
68.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、P、q、均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。該程序段實(shí)現(xiàn)的功能是()。
A.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.刪除尾結(jié)點(diǎn)
69.
有以下程序,其中函數(shù)f的功能是將多個(gè)字符串按字典順序排序()。
#include<string.h>
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]
=t;}
}
main
{char*P[5]={"abe","aabdfg","abbd","dcd-
be","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序運(yùn)行后的輸出結(jié)果是()o
A.2B.3C.6D.4
70.
71.計(jì)算機(jī)的內(nèi)存儲(chǔ)器比外存器()
A.價(jià)格便宜B.存儲(chǔ)容量大C.讀寫速度快D.讀寫速度慢
72.下面不屬于軟件工程三要素的是()。
A.方法B.環(huán)境C.工具D.過程
73.有以下程序程序運(yùn)托舌的輸出結(jié)果是()。
A.1,2B.1,0C.3,2D.0,0
74.有以下程序
#include<stdio.h>
main()
{inti=5;
do
{if(i%3==1)
if(i%5==2)
{printf("*%d",i);break;}
i++;
}while(i!=0);
printf("\n");
}
程序的運(yùn)行結(jié)果是
A.*7B.*3*5
C.*5D.*2*6
75.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流
76.若有以下說明和語句,請(qǐng)選出哪個(gè)是對(duì)C數(shù)組元素的正確引用()。
A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)
77.有以下程序
#include<stdio.h>
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i<N;i++)
b[i]=a[i][i];
}
main()
{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序的運(yùn)行結(jié)果是
A.l,2,3,4,
B.1,0,7,0,
C.1,4,5,9,
D.3,4,8,10,
78.
79.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲(chǔ)空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式
D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重油催化裂化催化劑項(xiàng)目發(fā)展計(jì)劃
- 2025年度企業(yè)并購重組咨詢顧問服務(wù)協(xié)議-@-1
- 2025年鈷粉系列項(xiàng)目發(fā)展計(jì)劃
- 家長參與小班教育的倡導(dǎo)計(jì)劃
- 實(shí)施有效反饋的工作方法計(jì)劃
- 文化演出活動(dòng)的安保工作總結(jié)計(jì)劃
- 2025年高純四氧化三錳項(xiàng)目發(fā)展計(jì)劃
- 七年級(jí)下冊(cè)《相交線》課件與練習(xí)
- 汽車尾氣凈化催化轉(zhuǎn)化器安裝要求
- 2025年激光測(cè)距儀、測(cè)向儀項(xiàng)目合作計(jì)劃書
- 2025春季開學(xué)前學(xué)校安全隱患排查工作實(shí)施方案:5大安全排查一個(gè)都不能少
- (完整版)高考英語詞匯3500詞(精校版)
- 2024年聯(lián)勤保障部隊(duì)第九四〇醫(yī)院社會(huì)招聘筆試真題
- 正負(fù)零以下基礎(chǔ)施工方案(44頁)
- 簡(jiǎn)愛人物形象分析(課堂PPT)
- 義務(wù)教育《勞動(dòng)》課程標(biāo)準(zhǔn)(2022年版)
- 2018年黑龍江統(tǒng)招專升本公共英語真題
- (完整版)小學(xué)生必背古詩300首帶拼音版本
- 大學(xué)物理光學(xué)答案
- 老撾10大經(jīng)濟(jì)特區(qū)
- 通用標(biāo)準(zhǔn)快裝接頭尺寸表
評(píng)論
0/150
提交評(píng)論