版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年湖南省衡陽市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_____的二叉樹
A.空或者只有一個結(jié)點B.高度等于其結(jié)點數(shù)C.任一結(jié)點無左孩子D.任一結(jié)點無右孩子
2.以下選項中,能用作用戶標識符的是()。
A._0_B.8_8C.voidD.unsigned
3.有以下程序
#include<stdio.h>
main()
{ints;
scanf(“%d”,&s);
while(s>0)
{switch(s)
{case1;printf(“%d”,s+5);
case2:printf(“%d”,s+4);break;
case3:printf(“%d”。s+3);
default:printf(“%d”,s+1);break;
}
seanf(“%d”,&s);
}
}
運行時,若輸入12345O<回車>,則輸出結(jié)果是A.6566456B.66656C.66666D.6666656
4.有以下定義:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能輸出字母M的語句是()。
A.printf(“%c\n”,class[2].name[0]);
B.printf(“%c\n”,class[3].name[0]);
C.printf(“%c\n”,class[3].name[1]);
D.printf(“%c\n”,class[2].name[1]);
5.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
6.有以下程序:#include<stdio.h>main{inta=1,b=2;while(a<6){b+=a;a4+=2;b%=10;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.5,11B.7,1C.7,11D.6,1
7.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
8.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后
C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中
9.關(guān)于結(jié)構(gòu)化程序設(shè)計原則和方法的描述錯誤的是()。
A.選用的結(jié)構(gòu)只準許有一個入口和一個出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)
C.不允許使用GOT0語句
D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
10.以下各選項中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;
B.intx=5,y=0;if(x)y=1;
C.intx=10,y=0;if(x=y)y=1;
D.intx=5,y=10;if(x=y)y=1;
11.下面不合法的常量數(shù)據(jù)是()。
A..023E-5B.0x3f7b8a90C.‘\0x6d’D.‘\0123321’
12.設(shè)有6個結(jié)點的無向圖,該圖至少應(yīng)有()條邊才能確保是一個連通圖。
A.7B.5C.8D.6
13.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.
A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)
14.執(zhí)行完下列語句段后,i值為()。A.A.2B.4C.8D.無限遞歸
15.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45
16.在存儲數(shù)據(jù)時,通常不僅要存儲各數(shù)據(jù)元素的值,而且還要存儲()。
A.數(shù)據(jù)的處理方法B.數(shù)據(jù)元素的類型C.數(shù)據(jù)元素之間的關(guān)系D.數(shù)據(jù)的存儲方法
17.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。
A.兩個語句都是將變量a的值賦予變量P
B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P
C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a
D.兩個語句都是使P指向變量a
18.若有定義“inta,b,c;”,想通過語句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。
A.1,2,3<Enter>
B.1,2<tab>3<Enter>
C.1<Enter><tab>2<tab>3
D.1<Enter>2<Enter>3
19.在目標串T[0,n-1]=”xwxxyxy”中,對模式串p[0,m-1]=”xy”進行子串定位操作的結(jié)果_______
A.0B.2C.3D.5
20.若有"doublea;",則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
二、2.填空題(20題)21.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
22.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
23.閱讀程序:
#include<string.h>
#include<strdio.h>
strle(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!='0')num++;
while(b[n])
{*(a+num)=b[n];num++;n++;}
return(num);
}
main()
{charstrl[81],str2[81],*p1=strl,*p2=str2;
gets(p1);gets(p2);
prinf("%d\n",strle(p1,p2));
}
運行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串a(chǎn)bcd,則程序的輸出結(jié)果是【】。
24.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。
25.用下面語句調(diào)用庫函數(shù)malloc,使單精度型指針p指向具有40個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡?/p>
p=(float*)【】;
26.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar(
n1=ch1-'0';n2-n1*10+(ch2-'0');
printf("%d\n",n2);;
}
程序運行時輸入:12<回車>,執(zhí)行后輸出結(jié)果是______。
27.有以下語句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>
n1=10
n2=20
28.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。
29.下列程序的輸出結(jié)果是______。
#include<stdio.h>
sb(ints[],intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8};
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
30.當(dāng)運行以下程序時,輸入abcd,程序的輸出結(jié)果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
31.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
32.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
33.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)返回字符串“yes!”,否則函數(shù)返回字符串“no!”,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adsda。請?zhí)羁铡?/p>
#include<stdio,h>
#include<string,h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=【】;
for(i=0;i<=strlen(str)/2;i++)
if(*pl++!=*p2--){t=1;break
if(【】)return("yes!");
elsereturn("no!");
}
main(){charstr[50];
printf("Iaput:");scanf("%s",str);
printf("%s\n",【】);
34.由25人圍坐成圓圈,先由任意一人開始順時針沿用1~25依次編號,然后從1號開始順時針報數(shù)(1、2、3…),凡報5的倍數(shù)者出圈,剩下者繼續(xù)報數(shù),求出最后出圈者的編號。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
35.實體之間的聯(lián)系可以歸結(jié)為一對一聯(lián)系、一對多(或多對多)的聯(lián)系與多對多聯(lián)系。如果一個學(xué)校有許多教師,而一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于______的聯(lián)系。
36.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
37.有以下程序
intsub(intn){retnrn(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若運行時輸入:1234<回車>,程序的輸出結(jié)果是______。
38.棧中允許進行插入和刪除的一端叫做______。
39.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
40.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
三、1.選擇題(20題)41.設(shè)有以下說明,則不正確的敘述是()。unionun{inta;chatb:floatc;}arr;
A.arr所占的內(nèi)存長度等于成員c的長度
B.arr的地址和它的各成員的地址都是同一地址
C.arr可以作為函數(shù)參數(shù)
D.不能在定義art時對它初始化
42.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()
A.voidfun(double*s)
B.fun(double*s[4])
C.fun(double(*s)[3])
D.voidfun(double(*s)[4])
43.設(shè)有如下關(guān)系表:
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
44.常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
45.個人計算機屬于()。
A.小巨型機B.中型機C.小型機D.微機
46.編制一個好的程序,首先要保證它的正確性和可靠性,還應(yīng)強調(diào)良好的編程風(fēng)格,在書寫功能性注釋時應(yīng)考慮
A.僅為整個程序作注釋B.僅為每個模塊作注釋C.為程序段作注釋D.為每個語句作注釋
47.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
48.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
49.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是()
A.typedefstructaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm,}tdl;
50.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則運算后,n的值為______。
A.0B.1C.2D.3
51.以下能正確定義數(shù)組并正確賦初值的語句是______。
A.intN=5,b[N=[N];
B.inta[1][2]={{1},{3}};
C.intc[2][]={{1,2},{3,4}};
D.intd[3][2]={{1,2},{34}};
52.若有如下程序:#include"stdio.h"voidmain(){FILE*fp;fp=fopen("test","wb")fprintf(fp,"%d%.1f,%c%c",5,238.41,'B','h');fclose(fp);}則程序運行后向文件輸出的結(jié)果是()
A.5238.41BhB.5238.4,BhC.5,238.4,B,hD.5238.41Bh
53.以下程序輸出結(jié)果是#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}
A.21B.32C.33D.11
54.C語言函數(shù)返回值的類型是由______決定的。
A.return語句中的表達式類型B.調(diào)用函數(shù)的主調(diào)函數(shù)類型C.調(diào)用函數(shù)時臨時D.定義函數(shù)時所指定的函數(shù)類型
55.下列程序的運行結(jié)果是()。#include<stdio.h>main(){inta=0,b=4,c=0,d=10,x;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;printf("%d\n",d);}
A.5B.3C.20D.10
56.下列選項中不合法的十六進制數(shù)是()。
A.OxffB.OXllC.OxlgD.OXabc
57.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
58.可以在C語言中用做用戶標識符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
59.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
60.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}
A.3B.4C.2D.5
四、選擇題(20題)61.若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是()。
A.函數(shù)的形參和實參分別占用不同的存儲單元
B.形參只是形式上的存在,不占用具體存儲單元
C.同名的實參和形參占同一存儲單元
D.函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元
62.
63.
64.以下對C語言函數(shù)的有關(guān)描述中,正確的是()。
A.C函數(shù)可以遞歸調(diào)用也可以嵌套調(diào)用
B.在C中,調(diào)用函數(shù)時,只能把實參值傳給形參,形參值不能返回給實參
C.沒有返回值的函數(shù)不能被使用.
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中
65.若有以下定義和語句:
則輸出結(jié)果是()。
A.107B.105C.55D.58
66.
67.
68.
有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結(jié)果是()。
A.xyyxB.yyyyC.yyxxD.yxyx
69.已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應(yīng)采用的算法是()
A.堆排序B.直接插入排序C.快速排序D.直接選擇排序
70.已知函數(shù)的調(diào)用形式:fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
B.一個文件指針,指向要讀的文件
C.一個指針,指向要讀入數(shù)據(jù)的存放地址
D.一個存儲區(qū),存放要讀的數(shù)據(jù)項
71.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是()。
A.二維表B.E—R圖C.元組D.文件
72.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。A.定義語句中的*號是一個間址運算符
B.定義語句中的*號是一個說明符
C.定義語句中的p只能存放double類型變量的地址
D.定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P
73.
74.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
75.有兩個關(guān)系R、S如下:
由關(guān)系R通過運算得到關(guān)系s,則所使用的運算為()。
A.選擇B.投影C.插入D.連接
76.C語言中最簡單的數(shù)據(jù)類型包括()。
A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.字符型、實型、邏輯型
77.有以下程序:
程序運行后的輸出結(jié)果是()。
A.11,12B.12,13C.13,14D.14,11
78.一個函數(shù)內(nèi)有數(shù)據(jù)類型說明語句如下:
doublex,y,z(10)
關(guān)于此語句的解釋,下面說法正確的是()。
A.z是一個數(shù)組,它有10個元素
B.z是一個函數(shù),小括號內(nèi)的10是它的實參的值
C.x是一個變量,小括號內(nèi)的10是它的初值
D.語句中有錯誤,因為“z(10)”應(yīng)該為“z[10]”
79.
有以下程序:
#include<stdio.h>
main
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break:
else
i--;
}
i+=11:
a+=i:
}
printf("%d\n",a);
}
程序的輸出結(jié)果是()。
A.62B.63C.33D.32
80.
若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。
例如,輸入opdye,則應(yīng)輸出deopy。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charc;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=c;
}
}
voidmain
{
charstr[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\n\nBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%s",str);
}
六、程序設(shè)計題(1題)82.請編寫—個函數(shù),用來刪除字符串中的所有空格。例如,輸入asdafaaz67,則輸出為asdafaaz67。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.B
2.AC語言的標識符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或下劃線。另外,關(guān)鍵字不能作為標識符。B選項中以數(shù)字8開頭,所以錯誤。C選項與D選項中用的是關(guān)鍵字“void”與“unsigned”,所以錯誤。故本題答案為A選項。
3.A
4.AC語言規(guī)定數(shù)組的下標從0開始,結(jié)構(gòu)體數(shù)組class初始化了前4個元素。第3個元素的name=“Marry”,則class[2].name[0]=‘M’。故本題答案為A選項。
5.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
通常將引入數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關(guān)計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。
因此,選項C的說法是錯誤的。
因此,本題的正確答案是選項B。
6.B“b+=a;”等價于“b=b+a;”,“a+=2;”等價于“a=a±2;”,“bA=10;”等價于“b=b%=10;”。循環(huán)體執(zhí)行3次,最終結(jié)果為7,1。
7.C解析:要計算一個復(fù)雜的表達式時,首先要弄明白表達式中所有運算符的優(yōu)先級與結(jié)合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結(jié)合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結(jié)構(gòu)體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結(jié)構(gòu)體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達式的值為a[0],也就是1。選項B中表達式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結(jié)合性,選項C中的表達式等價于++(pt->x),由于是前綴++,所以整個表達式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應(yīng)該選擇C。
8.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制到s1字符串,要保證sl的容量。
9.C結(jié)構(gòu)化程序設(shè)計的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用G0T0語句。其他三項為結(jié)構(gòu)化程序設(shè)計的原則。
10.C選項A的if條件表達式的值是5,結(jié)果為真,執(zhí)行“y=1”,y的值為1;選項B的if條件表達式x的值為5,結(jié)果也是真,執(zhí)行“y=1”,y的值為1;選項C的if條件表達式“x=y”是賦值語句,將y的值0賦給x,表達式的值為0,if語句不執(zhí)行,y的值為0;選項D的if條件表達式“x=y”是賦值語句,將y的值10賦給x,表達式的值為10,執(zhí)行“y=1”,y的值為1。故本題答案為C選項。
11.D選項A是實型常量的指數(shù)形式,表示0.023×10-5;選項B是十六進制表示的整型常量;選項C是十六進制表示的轉(zhuǎn)義字符常量;選項D是字符串常量,應(yīng)該使用雙引號標注。故本題答案為D選項。
12.B
13.D
14.B
15.A函數(shù)fun()通過遞歸調(diào)用實現(xiàn)的功能為n+(n-1)+…+1,故程序的輸出結(jié)果為55。
16.C
17.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內(nèi)容“&”是取變量地址。
18.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個%d與第2個%d之間有一個逗號。所以輸入的第1個整數(shù)和第2個整數(shù)之間必須要有一個逗號,選項C、D錯誤;輸入的第2個整數(shù)和第3個整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項。
19.C
20.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
21.模塊模塊
22.x=11x=11解析:在對無符號數(shù)的右移是高位補0。
23.10
24.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
25.malloc(40)malloc(40)解析:庫函數(shù)malloc()只有一個參數(shù),就是所需分配內(nèi)存的字節(jié)數(shù),然后返回一個void*指針。本題要求分配40個字節(jié),故直接調(diào)用malloc(40)就可以了。
26.1212解析:本題考核的知識點是字符類型數(shù)據(jù)的表示方法和存儲形式。字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=ch1-'0'='1'-'0'=49-48=1n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。
27.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復(fù)制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
28.jj解析:在C程序中的字符量可參與任何整數(shù)運算。
29.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
30.a*b*c*d*a*b*c*d*解析:程序中的變量i用于存放字符串str的長度,執(zhí)行while語句,通過分析可知,字符串第2*i項的值可由第i項的值得到;第2*i-1項直接賦值為。號,i減1,如此反復(fù)直到不滿足i>0的條件時,輸出運行后的字符串。
31.調(diào)試調(diào)試
32.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。
33.p1+(stfien(str)-1)或str+(strlen(str)-1)t==0或!thuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+strp1+(stfien(str)-1)或str+(strlen(str)-1)\r\nt==0或!t\r\nhuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+str解析:回文字符串是指正向與反向拼寫都一樣。由huiwen函數(shù)可知,第三處應(yīng)該填寫調(diào)用函數(shù)huiwen(str)。在函數(shù)huiwen中,執(zhí)行P1=str;使p1指向字符串str中第一個字符的地址,則第一處應(yīng)該使p2指向字符串str中最后一個字符的地址,故填p1+(stden(str)-1)或str+(strlen(str)-1)。本題要求如果是回文,則返回'yes!',否則,返回'no!',故當(dāng)t=0時,說明字符串str為回文,所以第二處應(yīng)填t==0或!t。
34.0a[j]=0count<25
35.一對多或1:N。一對多或1:N。
解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
37.1010解析:本題程序中定義了一個函數(shù)sub(),用來計算一個整數(shù)整除10的商和余數(shù)的和。在主函數(shù)中,首先用scanf()函數(shù)讀入一個十進制整數(shù)1234,然后對1234三次嵌套調(diào)用函數(shù)svb()。首先看最里層的調(diào)用,應(yīng)該返回的值是123+4=127;然后中間一層調(diào)用應(yīng)該返回的是12+7=19;所以最外層調(diào)用返回1+9=10。故最后輸出10。
38.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
39.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
40.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。
41.C解析:本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,int占2個字節(jié),char占1個字節(jié),float占4個字節(jié),所以arr所占的內(nèi)存長度等于成員c的長度;arr的地址和它的各成員的地址都是同一地址;不能直接對arr賦值,即不能在定義arr時對它初始化;arr也不可以作為函數(shù)參數(shù)。
42.D
43.B解析:仔細觀察3個表可以看到,R,S,T具有相同的關(guān)系模式,且T包含了R和S的所有元組,故T=R∪S。
44.AA。【解析】線性表的存儲通常分為兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。
\n
45.D我國計算機界根據(jù)計算機的性能指標,如機器規(guī)模的大小、運算速度的高低、主存儲器容量的大小、指令系統(tǒng)性能的強弱以及機器價格等,將計算機分為巨型機、大型機、中型機、小型機、微型機和單片機6大類。目前,國外還有一種比較流行的看法,根據(jù)計算機的性能指標及廠家生產(chǎn)的計算機的主要面向應(yīng)用對象,把計算機分為巨型機、小巨型機、大型機、小型機、工作站和個人計算機6大類。其中,個人計算機(PersonalComputer),又稱為微型計算機(MicroComputer)。故本題正確答案是D\n【考點】科技\n學(xué)科專題(物理、化學(xué)、生物醫(yī)學(xué)、計算機)\n計算機發(fā)展史
46.C解析:功能性注釋是嵌在源程序體中的,用以描述其后的語句或程序段是在做什么工作,或者執(zhí)行了下面的語句會怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語句。
47.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。
48.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
49.C解析:定義結(jié)構(gòu)體類型的變量有幾種的方法如下:
①定義結(jié)構(gòu)體類型的同時,定義結(jié)構(gòu)體類型的變量,如下面的定義中在定義結(jié)構(gòu)體類型aa的同時定義了該類型的變量tdl。上述B)項中將宏名AA用宏體structaa替換進去后,與該定義形式一樣,因此是正確的。這一定義形式中,結(jié)構(gòu)體類型名明是可以省略的,因此,D)項也是正確的。
structaa
{...
}tdl;
②先定義結(jié)構(gòu)體類型,然后再定義結(jié)構(gòu)體類型的變量,形式如下:
structaa
{
…
};
structaatdl;
這種定義形式也可演變?yōu)?,先用類型定義語句typedef將該結(jié)構(gòu)體類型定義成一個類型名AA,然后直接用該類型名AA去定義一個變量(這時不再需要使用關(guān)鍵字struct了)。這就是A)項的形式。
50.A解析:C語言中比較表式的運算結(jié)果為0或1。0代表不成立,1表示成立。
51.D解析:本題考查二維數(shù)組的定義。不能對數(shù)組進行動態(tài)定義,選項A錯誤;選項C省略第二維的長度;選項B中初值的行數(shù)超過數(shù)組第一維的長度。
52.B解析:本題對文件test輸出4個數(shù)據(jù),第一個5原樣輸出,第二個238.41只保留小數(shù)點后1位,然后輸出一個‘,’,再連續(xù)輸出兩個字符‘B’和‘h’。所以最終的輸出結(jié)果是5238.4,Bh。應(yīng)該選擇B。
53.B解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用。本題程序為在while循環(huán)中嵌套for循環(huán)。先看內(nèi)層for循環(huán),該循環(huán)的3個表達式全部省略,循環(huán)條件始終為真,但循環(huán)體內(nèi)的break語句為終止循環(huán)的條件。首先,由初始條件判斷外層循壞while括號內(nèi)表達式的值,該值為真,執(zhí)行本次while循環(huán),即執(zhí)行循環(huán)體內(nèi)的訂語句,判斷該表達式后面括號里表達式的值為真,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句,此時i和a的值均變?yōu)?1;回到外層循環(huán),判斷表達式“i<20”仍為真,執(zhí)行內(nèi)層循環(huán)語句,此時if條件不滿足,執(zhí)行else語句,i的值為10,繼續(xù)內(nèi)層循環(huán),if語句條件滿足,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句后,i和a的值分別是21和32。再判斷外層循環(huán)的條件為假,結(jié)束循環(huán).所以,4個選項中B為所選。
54.D解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時指定的。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型—致,如果不—致,則以函數(shù)類型為準,即函數(shù)類型決定返回值的類型。
55.D解析:本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)a=0條件不成立,則執(zhí)行與其配對的else語句;第2個if語句,先判斷條件,發(fā)現(xiàn)b=4,則!b條件不成立,又沒有與其配對的else語句,所以執(zhí)行printf語句,輸出d。
56.C解析:十六進制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個數(shù)字和a、b、c、d、e、f這6個字母。
57.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
58.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標識符。選項A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。
59.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實體集也可以轉(zhuǎn)換成關(guān)系。
60.B解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為3+1=4。
61.A本題重點考察的是函數(shù)的形參和實參。I在定義函數(shù)時函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”l(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧1中的參數(shù)(可以是—個表達式)稱為“實際參數(shù)”(簡稱實參)。fC語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。因此A選項正確。
62.D
63.D
64.A選項B),形參值的改變不會影響實參,但形參值可以作為返回值返回給實參。選項c),函數(shù)可以沒有返回值,即返回值類型為void。選項D),函數(shù)可以定義在不同的文件中,只要調(diào)用前包含被調(diào)用函數(shù)所在的文件即可。
65.Cstrlen函數(shù)返回字符串的長度,求字符串1長度時,遇到結(jié)束標志‘、0’為止,但是長度不包括結(jié)束標識。f字符數(shù)組sl的后5個元素沒有賦值,都為‘\0’,即“abcd!”后為‘\0’。所以sMen(s1)的值為5。字符指針s2所指向的字符串中,、n為轉(zhuǎn)義字符換行符,表示1個字符,\、也為轉(zhuǎn)義字符,代表\,也是l個字符,其后為字符串結(jié)束標識‘0’;所以strlen(s2)的值也為5。因此C選項正確。
66.A
67.A
68.C
\n本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
\n
69.B堆排序。先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后再建成新的根堆,再排序。堆排序的過程是:先建一個堆,輸出堆頂?shù)淖畲蠡蜃钚〉脑?,再將剩余的n-1個元素重新調(diào)整成一個新堆。如此反復(fù)進行,直到排序完成。
直接插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入到已排好的有序表中,從而得到一個新的、記錄數(shù)增1的有序表。首先,將序列中的第1個記錄看成是一個有序的子序列,然后從第2個記錄起逐個進行插入,直至整個序列變成按關(guān)鍵字非遞減有序序列為止。
快速排序是對冒泡排序的一種改進。它的基本思想是通過一趟排序?qū)⒋庞涗浄指畛瑟毩⒌膬刹糠?,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可以分別對這兩部分記錄繼續(xù)進行排序,以達到整個序列有序。
直接選擇排序是通過n-i次關(guān)鍵字間的比較,從n-i+1個記錄中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 14896.10-2025特種加工機床術(shù)語第10部分:電鑄機床
- GB/T 23527.3-2025酶制劑質(zhì)量要求第3部分:淀粉酶制劑
- 家長觀看安全知識培訓(xùn)課件
- 膽結(jié)石臨床診斷規(guī)范與流程
- 2026年線上教育平臺合作合同協(xié)議
- 2026年網(wǎng)絡(luò)安全培訓(xùn)合同協(xié)議
- 2026年廣告投放合作合同協(xié)議
- 房屋買賣合同2026年地下室使用權(quán)
- 2026年餐飲會員管理合同
- 2026年農(nóng)業(yè)技術(shù)推廣應(yīng)用合同
- 2026屆江蘇省常州市高一上數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 2026年及未來5年市場數(shù)據(jù)中國水質(zhì)監(jiān)測系統(tǒng)市場全面調(diào)研及行業(yè)投資潛力預(yù)測報告
- 藝考機構(gòu)協(xié)議書
- 2025年12月27日四川省公安廳遴選面試真題及解析
- 2026年農(nóng)業(yè)科技領(lǐng)域人才選拔與專業(yè)技能考核要點解析
- 2025-2030中國海洋工程裝備制造業(yè)市場供需關(guān)系研究及投資策略規(guī)劃分析報告
- 《生態(tài)環(huán)境重大事故隱患判定標準》解析
- 2025年度吉林省公安機關(guān)考試錄用特殊職位公務(wù)員(人民警察)備考筆試試題及答案解析
- 2025年中國作家協(xié)會所屬單位公開招聘工作人員13人備考題庫及一套參考答案詳解
- 走進歌樂山課件
- 茶葉對外貿(mào)易科普
評論
0/150
提交評論