版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年江西省上饒市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)()。
A.getcharB.getcC.getsD.scanf
2.下面關(guān)于串的的敘述中,哪一個是不正確的()。
A.串是字符的有限序列
B.空串是由空格構(gòu)成的串
C.模式匹配是串的一種重要運(yùn)算
D.串既可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯?/p>
3.對一個滿二叉樹,m個葉子,n個結(jié)點(diǎn),深度為h,則()。
A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1
4.采用開放定址法處理散列表的沖突時,其平均查找長度()
A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突
5.a、b、c、d變量均為float類型且已正確賦值,下列選項(xiàng)中與數(shù)學(xué)式子“2ab/(5cd)”等價的C語言表達(dá)式是()。
A.2/5*a/c*d/b
B.a/(5*c*d)*(2*b)
C.2*a*b/5*c*d
D.2/5*a*d*(1/c*d)
6.
7.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
8.
9.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964
B.123456789964abbcdefghijk
C.123445667899abbcdefghijk
D.abbcdefghijk123445667899
10.
11.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是
A.12B.123C.234D.345
12.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。
A.24B.28C.32D.36
13.
14.設(shè)串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
15.樹的度為3,且有9個度為3的節(jié)點(diǎn),5個度為1的節(jié)點(diǎn),但沒有度為2的節(jié)點(diǎn)。則該樹中的葉子節(jié)點(diǎn)數(shù)為()。
A.18B.33C.19D.32
16.設(shè)有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,按列優(yōu)先存放時,元素A5,4的地址為()。
A.1256B.1264C.1272D.1280
17.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
18.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
19.指針可以用來表示數(shù)組元素,若已知語句:inta[3][7];則下列表示中正確的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
20.一個有7個頂點(diǎn)的完全三部圖,至少有存在幾條邊()
A.10B.11C.15D.16
二、2.填空題(20題)21.以下程序輸出的最后一個值是【】。
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<5;i++)printf("%d\n",ff(i));}
22.有以下程序:
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)puts(ps);
}
執(zhí)行后的輸出結(jié)果是【】。
23.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。
【】t[20]
24.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
25.以下程序的運(yùn)行結(jié)果為【】。
main()
{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];
for(i=0;i<4;i++)
{for(j=0;j<3;j++)
printf("%-3d",b[i][j]);
printf("\n");
}
}
26.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。
27.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{chara[]="Language",b[]="Programe";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));
}
28.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
29.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
30.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時,輸入Thank!,則輸出結(jié)果是【】。
31.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
32.有兩個C程序文件T18.c和myfun.c同在VC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();prinff("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!:'\n')s[n++]=c;
n--;
while(n>=0)prinff("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時,輸入"Thank!”,則輸出結(jié)果是【】。
33.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。
34.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
35.以下程序的運(yùn)行結(jié)果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
36.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
37.關(guān)系可以有3種類型,即基本關(guān)系(又稱基本表或基表)、查詢表和【】。
38.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,所以,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。
39.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。
40.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf456gh,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdioo.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
三、1.選擇題(20題)41.設(shè)有以下定義的語句,則*(*(p+2)+1)的值為______。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;
A.10B.30C.60D.40
42.有以下程序int*f(znt*x,int*y){if(*x<*y)returnX;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d.%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
43.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)的存放形式
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式
D.存儲在計(jì)算機(jī)外存中的數(shù)據(jù)
44.下列敘述中正確的是()。
A.在模塊化程序設(shè)計(jì)中,一個模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息
B.在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先應(yīng)設(shè)計(jì)解決問題的第一個細(xì)節(jié)
C.在模塊化程序設(shè)計(jì)中,一個模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則
D.在程序設(shè)計(jì)過程中,不能同時采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法
45.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結(jié)果是______。
A.2B.3C.4D.編譯時有錯,無結(jié)果
46.下列程序執(zhí)行后的輸出結(jié)果是()main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.隨機(jī)數(shù)
47.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)3者之間的關(guān)系是二______。
A.數(shù)據(jù)庫包含數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包含數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包含數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.以上都不正確
48.在C程序中,可把整型數(shù)以二進(jìn)制形式存放到文件中的函數(shù)是()。
A.fprintf函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)
49.下列程序段中,不能正確賦值的是()。
A.char*p,ch;p=&ch;scanf("%c",&p);
B.char*p;p=(char*)malloc(1);scabf("%c",p);
C.char*p;*p=getchar();
D.char*p,ch;p=&ch;*p=getchar();
50.軟件需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求分析說明書和
A.階段性報告B.需求評審C.總結(jié)D.都不正確
51.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。
A.10B.11C.12D.語法錯誤
52.以下定義語句中正確的是______。
A.chara='A'b='B';
B.floata=b=19.0;
C.inta=10,*b=&a;
D.float*a,b=&a;
53.有以下程序
main()
{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}
程序執(zhí)行后的輸出結(jié)果是
A.45B.20C.25D.36
54.以下程序的輸出結(jié)果是______。main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"),k;for(k=1;k<3;k++)printf("%s\n",w[k]);}
A.ABCDFGHKLMB.ABCDEFGIJC.EFGJKOD.EFGHUKL
55.以下數(shù)組定義中不正確的是_______。
A.inta[2][3];
B.intb[][3]={0,1,2};
C.intc[100][100={0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
56.數(shù)據(jù)庫設(shè)計(jì)包括兩個方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
57.在printf的格式字符中,e格式字符的作用是()。
A.以十六進(jìn)制無符號形式輸出整數(shù)
B.以帶符號的十進(jìn)制形式輸出整數(shù)
C.以指數(shù)形式輸出實(shí)數(shù)
D.以字符形式輸出,且只輸出一個字符
58.下列說法錯誤的是()。
A.下列結(jié)構(gòu)體定義時,占據(jù)了5個字節(jié)的空間structstudent“ntnum;intage;charsex;}
B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C.對結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量
D.結(jié)構(gòu)體可以嵌套定義
59.下面程序main(){intx=32;printf("%d\n",x=x<<1);}的輸出是______。
A.100B.160C.120D.64
60.下列程序段的運(yùn)行結(jié)果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
四、選擇題(20題)61.以下敘述中不正確的是
A.預(yù)處理命令都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.宏替換不占用運(yùn)行時間,只占編譯時間
D.以下定義是正確的:#definePI3.1415926;
62.
63.(72)n個頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有______。
A.n-1
B.n(n-1)
C.n
D.n+1
64.
65.有以下程序:
#include<stdio.h>
main()
{intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;
for(i=0;i<3;i++)
for(j=1;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.1B.3C.4D.0
66.以下程序的輸出結(jié)果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}
A.99B.520C.1320D.2020
67.(18)下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是______。
A.數(shù)據(jù)結(jié)構(gòu)
B.數(shù)據(jù)操作
C.數(shù)據(jù)查詢
D.數(shù)據(jù)約束
68.以下敘述中不正確的是
A.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
B.C語言中對二進(jìn)制文件的訪問速度比文本文件快
C.C語言中,隨機(jī)讀寫方式不適用于文本文件
D.C語言中,順序讀寫方式不適用于二進(jìn)制文件
69.設(shè)有定義語句int(*f)(int);,則以下敘述正確的是()。
A.f是基類型為int的指針變量
B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參
C.f是指向int類型一維數(shù)組的指針變量
D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址
70.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實(shí)參可以是表達(dá)式
B.調(diào)用函數(shù)時,實(shí)參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實(shí)參的值復(fù)制給形參,使實(shí)參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實(shí)參與形參的類型必須一致
71.
72.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter
B.Create
C.Update
D.Insert
73.
74.成功的測試是指A.A.運(yùn)行測試實(shí)例后未發(fā)現(xiàn)錯誤
B.發(fā)現(xiàn)程序的錯誤
C.證明程序正確
D.軟件產(chǎn)生
75.
有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
76.
77.
78.
79.設(shè)有定義:
則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
80.有以下程序
#include<stdio.h>
voidfun(char**p)
{p=p+2;
printf("%s\n",*p);
}
main()
{char*a[]={"Morning","Afternoon","Evening","Night"};
fun(a);
}
程序的運(yùn)行結(jié)果是
A.rning
B.a(chǎn)fternoon
C.ternoon
D.Evening
五、程序改錯題(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è)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標(biāo)并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結(jié)果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.C當(dāng)輸入字符串時,函數(shù)scanf用“空格”間隔不同的字符串,scanf函數(shù)不能輸入空格。getchar函數(shù)用于輸入字符,其調(diào)用形式為ch=getchar(),getehar函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶按<Enter>鍵時,讀入才開始執(zhí)行。gets函數(shù)的調(diào)用形式為getS(Str_adr),其中“str_adr”是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc函數(shù)的調(diào)用形式為ch=getc(Pf),其中“pf”是文件指針,函數(shù)的功能是從“pf”指定的文件中讀入一個字符,并把它作為函數(shù)值返回。故本題答案為C選項(xiàng)。
2.B
3.D
4.B
5.B解析:選項(xiàng)A和選項(xiàng)D中首先計(jì)算2/5,因?yàn)閮蓚€計(jì)算分量都是整型,所以結(jié)果為2,與實(shí)際運(yùn)算不符;選項(xiàng)B中因?yàn)槌顺M足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項(xiàng)C中的表達(dá)式等價于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。
6.C
7.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
8.A
9.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構(gòu)成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項(xiàng)。
10.B
11.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來看不是線性的,但是在C語言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個指針p指向數(shù)組a的第1個元素a[0][0]。在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序?yàn)槠湓刭x從0~8九個值,然后用第二個for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個元素的值。所以,4個選項(xiàng)中選項(xiàng)D符合題意。
12.B解析:本題考查的是外部變量的應(yīng)用。因?yàn)槌绦虻某跏糹nta=4;語句定義了外部變量a,在以后的執(zhí)行過程中,當(dāng)i=0時,調(diào)用f(0)函數(shù),執(zhí)行的語句是else{inta=7;t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=7,返回值語句returnt+a++;處,外部變量a起作用,返回值為7+5=12:當(dāng)i=1時,調(diào)用f(1)函數(shù),執(zhí)行的是語句else{inta=6:t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=6,返回值語句
13.D
14.D
15.C設(shè)葉子結(jié)點(diǎn)數(shù)為〃,則該樹的結(jié)點(diǎn)數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點(diǎn)數(shù)=樹中所有結(jié)點(diǎn)的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項(xiàng)。
16.A
17.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。
18.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)軟件的支持。因此,選項(xiàng)A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。
通常將引入數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。
因此,選項(xiàng)C的說法是錯誤的。
因此,本題的正確答案是選項(xiàng)B。
19.D
20.B
21.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點(diǎn):
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運(yùn)行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦被值的,即只賦被值一次,在程序運(yùn)行時它已有被值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦被值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
22.zyzXyzzyzXyz解析:本題考查字符型指針變量的應(yīng)用。程序中字符指針變量ps指向字符串'xyz',while循環(huán)語句的作用使ps指向字符串結(jié)尾,for循環(huán)的執(zhí)行過程如下。
第一次循環(huán):ps指向字符串'z',輸出z。
第二次循環(huán):ps指向字符串'yz',輸出yz。
第三次循環(huán):ps指向字符串'xyz',輸出xyz。
23.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
24.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
25.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是將一個二維數(shù)組的行和列元素互換,存到另一個二維數(shù)組中。
26.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用??芍?,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。
27.gae
28.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。
29.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。
30.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。
31.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。
32.!knahT!knahT解析:程序中myfun.c被包含在T18.c中進(jìn)行編譯。fun函數(shù)中用getehar函數(shù)輸入字符并賦給數(shù)組s,每輸入一個字符,數(shù)組下標(biāo)n加1,直到遇到回車鍵時輸入結(jié)束。while(n>=0)循環(huán)反序輸出字符中。所以myfun.c文件用于實(shí)現(xiàn)字符串反序的功能。
33.數(shù)據(jù)模型數(shù)據(jù)模型
34.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
35.99解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達(dá)式的值,否則為b+1的值為整個表達(dá)式的值,(應(yīng)注意后面的加1)。
36.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
37.視圖表視圖表解析:關(guān)系數(shù)據(jù)庫中通常有3種關(guān)系,即基本關(guān)系(又稱基本表或基表)、查詢表和視圖表?;颈硎窃跈C(jī)器中實(shí)際存儲數(shù)據(jù)的表。查詢表是查詢的結(jié)果所對應(yīng)的臨時表。視圖表是由基本表或其他視圖表導(dǎo)出的表,是不實(shí)際存儲數(shù)據(jù)的表。視圖表是一個虛表。
38.物理獨(dú)立性物理獨(dú)立性解析:邏輯獨(dú)立性是指,由于數(shù)據(jù)的局部邏輯結(jié)構(gòu)與總體邏輯結(jié)構(gòu)之間也由系統(tǒng)提供映像,使得當(dāng)總體邏輯結(jié)構(gòu)改變時,其局部邏輯結(jié)構(gòu)叮以不變,從而根據(jù)局部邏輯結(jié)構(gòu)編寫的應(yīng)用程序也可以不必修改。物理獨(dú)立性是指,由于數(shù)據(jù)的存儲結(jié)構(gòu)與邏輯結(jié)構(gòu)之間山系統(tǒng)提供映像,使得當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,所以,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改。
39.非0非0解析:邏輯運(yùn)算中,非0表示邏輯“真”,用。表示邏輯“假”。
40.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:“chars[80],d[80];”定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因?yàn)樽址麛?shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的字符是否在'0'到'9'之間,或使用庫函數(shù)isdigit(),來判斷是否為數(shù)字字符。如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即'0'的出現(xiàn))。將'\\0'字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以空白處應(yīng)填入比較語句s[i]>>='0'&&s[i]<='9'或isdigit(s[i])以及其他任何等價表達(dá)式。
41.C
42.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y)該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和小并讓它們指向了變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和,r的值是7,8和7。所以,B選項(xiàng)為所選。
43.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
44.CC?!窘馕觥吭谀K化程序設(shè)計(jì)中,模塊之間的聯(lián)系可以通過程序的控制結(jié)構(gòu)來實(shí)現(xiàn),在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先要考慮全局目標(biāo),而不是細(xì)節(jié)。在程序設(shè)計(jì)中模塊化和結(jié)構(gòu)化可以同時使用,一個模塊的內(nèi)部結(jié)構(gòu)也要符合結(jié)構(gòu)化設(shè)計(jì)原則。
45.B解析:C語言規(guī)定else總是和離它最近的if語句配對。故第一個else和第一個if配對,第二個else和第二個if配對。首先計(jì)算第一個if后面的表達(dá)式“a>b>c”,表達(dá)式“a>b”是為1,表達(dá)式“1>c”為0,所以執(zhí)行else后面的語句。先執(zhí)行if后面的表達(dá)式,“c-1>d”為真,值為1?!?==1”為真,執(zhí)行printf語句。
46.B
47.B
48.C解析:fprintf是格式文件格式化輸出函數(shù),fread是讀文件,fputc輸出單個字符到文件。只有fwrite可以通過參數(shù)來設(shè)置以二進(jìn)制形式寫文件。
49.C解析:地址變量p指向的存儲空間一定要明確,否則可能影響程序的正確性。
50.B解析:本題考查軟件需求分析的四個階段,分別為需求獲取、需求分析、編寫需求分析說明書和需求評審。
51.D解析:C語言中有基本的算術(shù)運(yùn)算符(+、-、*、/)還包括自增自減運(yùn)算符(++、-),在C語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。
52.C解析:選項(xiàng)A中a='A'b='B'中缺少一個逗號;B中只能定義一個,如a=19.0;D中b是float類型的,不能取指針地址。
53.C解析:統(tǒng)計(jì)1~9九個數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運(yùn)行的結(jié)果是1+2+3+4+5+6+7+8+9=25。
54.D
55.D解析:一維數(shù)組的定義方式為:
類型說明符數(shù)組名[常量表達(dá)式];
選項(xiàng)A符合此定義形式,正確;C語言中多維數(shù)組賦初值時可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對全部數(shù)組元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯誤的。
56.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
57.C本題考查printf函數(shù)的格式。格式字符“e”或者“E”都表示以指數(shù)形式輸出單精度或雙精度數(shù)。
58.A解析:本題主要考查定義結(jié)構(gòu)體的幾個特點(diǎn):①結(jié)構(gòu)的定義明確了結(jié)構(gòu)的組成形式,定義了一種C語言中沒有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時候結(jié)構(gòu)的定義并不會使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說明結(jié)構(gòu)變量時才分配內(nèi)存空間;②結(jié)構(gòu)體的成員名可以與程序中的變量名相同:⑧結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量:④結(jié)構(gòu)體可以嵌套定義。
59.D解析:<<是C語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘于2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,x<<1=32*2=64。
60.B解析:先定義了一個指向字符型數(shù)組str的指針p,指針p旨向數(shù)組str的首地址,p+3將指針指向str[3],又因?yàn)樽址蛿?shù)組在存放字符串時會自動在末尾加上'\\0',所以*(p+3)=0。
61.D在C語言程序中,會出現(xiàn)以“#”號開頭的預(yù)處理命令,如包含命令#include、宏定義命令#define等。在源程序中,這些命令都放在函數(shù)之外,而且一般都放在源文件的前面,它們稱為預(yù)處理部分。
所謂預(yù)處理,是指在進(jìn)行編譯的第一遍掃描(詞法掃描和語法分析)之前所做的工作。預(yù)處理是C語言的一個重要功能,它由預(yù)處理程序負(fù)責(zé)完成。當(dāng)對一個源文件進(jìn)行編譯時,系統(tǒng)將自動引用預(yù)處理程序?qū)υ闯绦蛑械念A(yù)處理部分做處理,處理完畢自動編譯源程序。
在C語言中,宏是一種預(yù)處理命令,在定義宏時,不需要以語句標(biāo)識符“;”來表示宏定義結(jié)束,而是另起一行表示結(jié)束。
綜合上面的分析,可以知道本題選項(xiàng)中,A、B、C的說法都正確,只有D的宏定義不正確,因此本題的正確答案選D。
62.C
63.C
64.A
65.C\n本題考查了兩層for循環(huán)。外層循環(huán)增量i的值作為內(nèi)層循環(huán)執(zhí)行次數(shù)的值使用。
\n
66.B解析:C語言中字符串是以'0'字符結(jié)束的,且strlen()函數(shù)計(jì)算的是'0'字符前的所有字符的個數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有投有內(nèi)容。sizeof()函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。
67.C
68.D解析:在C語言中文本文件是以ASCII碼形式存放的,每個字符占一個字節(jié)。由于數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度集成電路產(chǎn)品品牌推廣與市場營銷合同3篇
- 二零二五年度水果種植基地土地流轉(zhuǎn)合同3篇
- 2024美團(tuán)外賣店外賣配送區(qū)域合作合同范本3篇
- 2025年度零星土建工程合同糾紛調(diào)解合同4篇
- 二零二五版貴金屬保管與寄售服務(wù)合同2篇
- 2024中考語文復(fù)習(xí)方案原創(chuàng)閱讀議論文閱讀
- 2024這份簽訂勞動合同指南請查收
- 二零二五年度農(nóng)業(yè)科技合作合同會簽書3篇
- 二零二五年騰訊新聞客戶端品牌宣傳與推廣合同3篇
- 2025年度臨時倉儲空間共享租賃及增值服務(wù)合同4篇
- 常見老年慢性病防治與護(hù)理課件整理
- 履約情況證明(共6篇)
- 云南省迪慶藏族自治州各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 設(shè)備機(jī)房出入登記表
- 六年級語文-文言文閱讀訓(xùn)練題50篇-含答案
- 醫(yī)用冰箱溫度登記表
- 零售學(xué)(第二版)第01章零售導(dǎo)論
- 大學(xué)植物生理學(xué)經(jīng)典05植物光合作用
- 口袋妖怪白金光圖文攻略2周目
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 三年級下冊生字組詞(帶拼音)
評論
0/150
提交評論