![2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁](http://file4.renrendoc.com/view/7f22fbde725d61bb9650d012c533f2b0/7f22fbde725d61bb9650d012c533f2b01.gif)
![2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁](http://file4.renrendoc.com/view/7f22fbde725d61bb9650d012c533f2b0/7f22fbde725d61bb9650d012c533f2b02.gif)
![2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁](http://file4.renrendoc.com/view/7f22fbde725d61bb9650d012c533f2b0/7f22fbde725d61bb9650d012c533f2b03.gif)
![2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁](http://file4.renrendoc.com/view/7f22fbde725d61bb9650d012c533f2b0/7f22fbde725d61bb9650d012c533f2b04.gif)
![2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁](http://file4.renrendoc.com/view/7f22fbde725d61bb9650d012c533f2b0/7f22fbde725d61bb9650d012c533f2b05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結(jié)果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
2.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()
A.希爾排序B.堆排序C.冒泡排序D.快速排序
3.以下敘述中錯誤的是()。
A.在同一源文件中,函數(shù)名必須唯一
B.凡是帶有返回值的庫函數(shù),都不能通過加分號而作為獨立的語句出現(xiàn)
C.不同函數(shù)中的形式參數(shù)可以同名
D.返回基本數(shù)據(jù)類型的庫函數(shù)的調(diào)用,均可以出現(xiàn)在賦值號右邊的表達式中
4.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
5.請選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
6.if語句的基本形式是“if(表達式)語句”,以下關(guān)于“表達式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
7.
8.設(shè)某無向圖中有n個頂點e條邊,則建立該圖鄰接表的時間復(fù)雜度為()。
A.O(n+e)B.O(n^2)C.O(ne)D.O(n^3)
9.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);
B.scanf("%*3d%3d%3d",&a,&b);
C.scanf("%3d%3d%*3d",&a,&b);
D.scanf("%3d%*2d%3d",&a,&b);
10.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。
A.p+1B.a+1C.a++D.++p
11.當用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
12.棧通常采用的兩種存儲結(jié)構(gòu)是A.A.線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B.散列方式和索引方式
C.鏈表存儲結(jié)構(gòu)和數(shù)組
D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
13.如果定義“班級”關(guān)系如下:班級(班級號,總?cè)霐?shù),所屬學(xué)院,班級學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
14.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
15.在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時所需進行的關(guān)鍵字比較次數(shù)是()
A.1B.2C.3D.4
16.
17.直接選擇排序的時間復(fù)雜度為()。(n為元素個數(shù))
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)
18.
19.下列敘述中正確的是()。
A.線性鏈表中的各元素在存儲空間中的位置必須是連續(xù)的
B.線性鏈表中的表頭元素一定存儲在其他元素的前面
C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
20.設(shè)有如下類型說明語句:typedefstruct{intnum;struct{inty,m,d;}date;}PER;則以下定義結(jié)構(gòu)體數(shù)組并賦初值的語句中錯誤的是()。
A.PERst[2]={{1001},2008,8,1,{1002},2006,5,20};
B.PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};
C.PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};
D.PERst[2]={1001,2008,8,1,1002,2006,5,20};
二、2.填空題(20題)21.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
22.以下程序把從終端讀入的20個整數(shù)以二進制方式寫到一個名為d.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"))==NULL)exit(0);
for(i=0;i<20;i++)
{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}
fclose(fp);
}
23.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
24.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計方法有兩種設(shè)計策略,它們是變換分析設(shè)計和______。
25.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
26.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
27.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
28.有以下程序:
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
執(zhí)行后的輸出結(jié)果是【】。
29.以下程序運行后的輸出結(jié)果是【】。(注:如果結(jié)果中含有回車,可加一空格寫在一行,例如:
111
111
111
可以寫成:111111111。
#include<stdio.h>
mala()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
30.下面函數(shù)用來求兩個單精度數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>
voidsub(floatx,floaty,【】z)
{【】=x+y;}
31.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
32.以下程序運行結(jié)果是【】。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)return(2);
p=x*func(x-1);
return(p);}
main()
{printf("%d\n",func(4));}
33.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
34.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
35.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
36.在關(guān)系模型中,二維表的行稱為______。
37.對下列二叉樹進行中序遍歷的結(jié)果為【】。
38.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
39.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
40.以下程序的運行結(jié)果是______。
intx;
main()
{inta=5,b=8;
swap(a,b);
printf("a=%d,b=%d,x=%d\n",a,b,x);
}
swap(inta,intb)
{inttemp;
temp=a;a=b;
b=temp;x=a/b;
printf("x=%d\n",x);
}
三、1.選擇題(20題)41.下列程序的運行結(jié)果是()。
#include<stdio.h>
main()
{stmctdate
{intyear,month,day;
}today;
primf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
42.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
A.-6B.1C.2D.-12
43.以下程序的輸出結(jié)果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
44.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.0C.1D.2
45.運行下面的程序,輸入字符串MicrosoftVisualStudio,則程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){charChr[20];scanf("%s",&Chr);printf("%s\n”,Chr);}
A.MicrosoftVisua1Studio
B.M
C.Microsoft
D.MicrosoflVisualStudio
46.有以下程序段:charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCⅡ十進制代碼為97,則執(zhí)行上述程序段后輸出的結(jié)果是()。
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
47.下列敘述中正確的是_______。
A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鍵表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
48.下列可用于C語言標識符的一組是_______。
A.voidWORDdefine
B.a6$sysFor
C.2asizeofabc
D.Intdefinesizeof
49.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
50.有以下程序
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的運行結(jié)果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
51.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}
A.{B.1C.2D.-12
52.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。
A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m
53.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。
A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移
54.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶定義的完整性
C.實體完整性和用戶定義的完整性
D.實體完整性、參照完整性和用戶定義的完整性
55.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運行后的輸出結(jié)果是()。
A.-1B.65535C.32767D.-32768
56.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
57.下面程序的輸出結(jié)果是()#definePI3.1415#defineARE(x)PI*x*xmain(){intr=2;printf("%f",ARE(r+1));}
A.28.26B.28.26C.9.28D.9.28
58.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
59.對下述程序的判斷中,正確的是#include<stdio.h>voidmain(){char*p,s[128];p=S;while(strcmp(s,"End")){printf("Inputastring:");gets(s);while(*p)putchar(*p++);}}
A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止
B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串
60.有以下程序
#include<stdio.h>
voidfun(int*s,intn1,intn2)
{inti,j,t;
i=n1;j=n2;
while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<l0;k++)printf("%d",a[k]);printf("\n");
}
程序的運行結(jié)果是
A.0987654321B.4321098765C.5678901234D.0987651234
四、選擇題(20題)61.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。
A.廣播電視是一種雙向的、點到多點的信息交互系自
B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)
C.電話是一種雙向的、點對點的、以信息交互為主要的的系統(tǒng)
D.雷達是一種以感測和識別為主要目的的系統(tǒng)
62.
63.
64.
65.以下程序的運行結(jié)果是()。
#include<stdio.h>
main{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}
A.0B.1C.2D.3
66.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復(fù)制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
67.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:
structst
{charname[15];
intage;
}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);
執(zhí)行語句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結(jié)果為()。A.A.15,AB.16,HC.16,AD.17,H
68.設(shè)有如下三個關(guān)系表
下列操作中正確的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
69.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
70.有以下程序:
#include<stdio.h>
main()
{inta[]={10,20,30,40},*p=a,j;
for(i=0;i<=3;i++){a[i]=*P;p++;}
printf("oAd\n",a[2]);
}
程序運行后的輸出結(jié)果是()。
A.30
B.40
C.10
D.20
71.
72.
73.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
74.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
75.
76.已知各變量的類型說明如下:
則以下不符合C語言語法的表達式是()。
A.
B.
C.
D.
77.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代替
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
78.
79.(20)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計
B.模式設(shè)計和內(nèi)模式設(shè)計
C.內(nèi)模式設(shè)計和物理設(shè)計
D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
80.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是
A.數(shù)據(jù)的物理分布性和邏輯整體性B.位置透明性和復(fù)制透明性
C.事物管理的集中性D.數(shù)據(jù)冗余
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串的最前端加入m個*號,形成新串,并且覆蓋原串。例如,用戶輸入字符串a(chǎn)bcd(以Enter鍵結(jié)束),然后輸入m值為3,則結(jié)果為***abcd。注意:字符串的長度最長允許為79。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次存放到一維數(shù)組中,將一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,w[i][j]);printf(“\n”);}fun(w,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i<n;i++)<p=""></n;i++)<>printf(“%3d”,a[i]);}
參考答案
1.C本題輸出兩個結(jié)果,第一個是求字符串的長度。第二個是輸出的字符串,數(shù)組的下標是從0開始的,所以當str取1的時候,應(yīng)為“One*Dream!”。
2.D
3.B在同一源文件中,函數(shù)名必須唯一,選項A正確。函數(shù)的調(diào)用有兩種形式:①出現(xiàn)在表達式中,可以出現(xiàn)在賦值號右邊的表達式中;②作為獨立的語句完成某種操作。因此選項B錯誤,選項D正確。不同函數(shù)中的形參可以同名,它們的作用域都限制在各自的函數(shù)體內(nèi),選項C正確。故本題答案為B選項。
4.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。
5.B
6.Dif語句中的表達式可以是任意合法的數(shù)值,如常量、變量表達式。故本題答案為D選項。
7.D
8.A
9.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數(shù)字,選項A正確。本題答案為A選項。
10.C
11.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數(shù)可以輸入一整行作為一個字符串,其中也包括空格字符,故應(yīng)該選擇C。
12.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。
13.B對于關(guān)系模式,若其中的每個屬性都已不能再分為簡單項,則它屬于第一范式模式。題目中“班級”關(guān)系的“班級學(xué)生”屬性,還可以進行再分,如學(xué)號、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項。
14.A解析:在printf函數(shù)常用的格式說明中,每個格式說明都必須用“%”開頭,以—個格式字符作為結(jié)束,在此之間可以根據(jù)需要插入“寬度說明”、左對齊符號“-”、前導(dǎo)零符號“0”等。本題中用到了d和f,d代表輸出符號的十進制整型數(shù),f代表以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)(單精度和雙精度數(shù))。對于float和double類型的實數(shù),可以用“n1.n2”的形式來指定輸出寬度(n1和n2分別代表—個整常數(shù)),其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù)點后小數(shù)位的位數(shù),由于輸出格式是以緊湊格式輸出,因此選項A是正確的。
15.B
16.A
17.D
18.D
19.D解析:性表的鏈式存儲結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲序號不連續(xù),且各結(jié)點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點的指針域來指示的。所以,選項D正確。
20.A結(jié)構(gòu)體PER類型定義了兩個成員:num為整型,date為嵌套的結(jié)構(gòu)體類型。初始化時,成員值的順序必須與成員定義的順序相同,num必須是整數(shù),date必須是用花括號標注的嵌套的3個整數(shù)。選項A中,{1001}和{1002}都不是整數(shù),所以選項A錯誤。故本題答案為A選項。
21.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運算符邏輯與“&&”的用法。
22."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中寫數(shù)據(jù),所以要打開文件bi.dat。fp是指向文件bi.dat的指針,是將數(shù)據(jù)寫入fp指向的文件中去。
23.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結(jié)構(gòu)。
24.事務(wù)分析設(shè)計事務(wù)分析設(shè)計解析:典型的數(shù)據(jù)流圖有兩種,即變換型和事務(wù)型。按照這兩種類型把設(shè)計方法分為兩類,即變換分析設(shè)計和事務(wù)分析設(shè)計。
25.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。
26.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。
27.存儲結(jié)構(gòu)
28.1321,3,2解析:函數(shù)f的形參是簡單變量,形參的改變不能影響實參,所以正確答案為1,3,2。
29.123056009或123056009123\r\n056\r\n009\r\n或123056009解析:程序開頭定義了一個3行3列的數(shù)組,即:
1,2,3
4,5,6
7,8,9
進入循環(huán),for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
把a[1][0],a[2][0],a[2][1]分別賦為0,輸出結(jié)果為:
123
056
009
30.float**zfloat*\r\n*z解析:C程序中可以通過傳送地址的方式在被調(diào)用函數(shù)中直接改變被調(diào)用函數(shù)中變量的值,從而達到函數(shù)之間數(shù)據(jù)的傳遞。
31.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。
32.4848解析:本題主要考查的是函數(shù)的遞歸調(diào)用,遞歸的終止條件是x==0或x==1,然后用已知值逐步遞推向上求未知值,直到得到最終的結(jié)果。
func(4)=4*func(3);
func(3)=3*func(2);
func(2)=2*func(1);
func(1)=2;
所以func(2)=2*2=4;
func(3)=3*4=12;
fune(4)=4*12=48。
33.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
34.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。
35.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。
36.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。
37.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結(jié)點。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點B,然后訪問結(jié)點D,因為結(jié)點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點F的左子樹。然后訪問根結(jié)點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點E,然后訪問結(jié)點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。
38.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。
39.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設(shè)計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設(shè)計測試實例時,測試人員將程序看成一個“黑盒”,即不關(guān)心程序內(nèi)部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計的測試用例完全是根據(jù)程序的功能說明來設(shè)計的。
40.a=5b=8x=1。a=5,b=8,x=1。解析:本題考查形參變量值的改變并不能傳回給實參。因此主函數(shù)中最后輸出的a和b仍為原來的初值5和8。
41.B解析:解答本題需要注意兩個知識點:①結(jié)構(gòu)體變量的長度是其內(nèi)部成員長度的總和,本題中,structdate中包含year、month、day這3個整型變量,一個整型變量占2個字節(jié):②sizeof是求所占字節(jié)數(shù)的運算符。
42.D解析:賦值運算符的結(jié)合方向是自右至左,所以表達式a+=a=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a+(-6)=-12。
43.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:
switch(表達式)
{
case常量表達式1:語句1;
case常量表達式2:語句2;
…
case常量表達式n:語句n;
default:語句n+1;
}
其語義是:計算表達式的值,并逐個與其后的常量表達式值進行比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句;如表達式的值與所有case后的常量表達式均不相等時,則執(zhí)行default后的語句。
44.A解析:本題考查ifelse語句。在intf(a,b)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句;第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。
45.C解析:當從鍵盤輸入MicrosoftVisualstudio時,由于scanf輸入函數(shù)的特點是遇到空格時結(jié)束讀入字符,因此,該程序只將Microsoft這9個字符送到了字符數(shù)組str中,并在其后自動加上結(jié)束符“\\0”。
46.D
47.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
48.D解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。注意,大寫字母和小寫字母被認為是兩個不同的字符。C語言中的關(guān)鍵字不能用作標識符。
49.A解析:在本題中k=n++,為后綴運算。根據(jù)其運算規(guī)則,首先n先加一,但n++表達式的值依然n原來的值,即k的值沒有改變。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價:選項B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達式和本題中表達式不等價:選項C中先計算表達式左邊的表達式++=N的值,執(zhí)行++n后,左邊的表達式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達式和本題中的表達式不等價;選項D中表達式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達式和本題中的表達式不等價。所以4個選項中A正確。
50.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句,y=0符合case0語句,執(zhí)行a++并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。
51.D解析:賦值運算符的結(jié)合方向是自右至左,所以表達式a+a-=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a+(-6),即a-(-6)+(-6)=-12。
52.D
53.BB。【解析】程序的三種基本控制結(jié)構(gòu)包括:順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)就足以表達出各種其他形式的結(jié)構(gòu)。
54.D解析:關(guān)系模型中包括關(guān)系的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的操縱和關(guān)系中的數(shù)據(jù)約束。關(guān)系完整性約束即數(shù)據(jù)完整性,包括實體完整性、參照完整性和用戶自定義完整性。
55.B當運算對象為不同的類型時,數(shù)據(jù)的轉(zhuǎn)換方向為int→unsigned→long→double。本題程序中的變量b為int型,先要轉(zhuǎn)換為unsigned型,int型變量的數(shù)值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數(shù)的范圍為0~65535,它的最高位為數(shù)值位。由于內(nèi)存中是以補碼形式存儲數(shù)據(jù)的,所以,整型的“-1”在內(nèi)存中表示為16個1,最高位的“1”表示符號負,將它轉(zhuǎn)換為unsigned類型,即將原符號位表示符號的“1”看成數(shù)值,就可得到16個數(shù)值位1,即65535。
56.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后的y的類型是int型。
57.D
58.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負責(zé)數(shù)據(jù)庫的建立、使用和維護的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫的安全保護工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
59.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標準輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果宇符串1,字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負整數(shù)。putchar(c)函數(shù)將字符c輸出到標準輸出設(shè)備上。
60.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進行首尾互相調(diào)換。所以在主函數(shù)中,當fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。
61.A廣播/電視是一種單向的、點對多點(面)的以信息傳遞為主要目的的系統(tǒng)。
62.C
63.D
64.D
65.D
66.B
\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。
\n
67.C本題考查結(jié)構(gòu)體數(shù)組。a[2].a(chǎn)ge為結(jié)構(gòu)體a[2]的age成員,a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2)是取指針所指向地址的內(nèi)容。
68.C\n對于兩個關(guān)系的合并操作可以用笛卡爾積表示。設(shè)有n元關(guān)系R和in元關(guān)系s,它們分別有P和q個元組,則R與S的笛卡兒積記為R×S它是一個m+n元關(guān)系,元組個數(shù)是P×q由題意可得,關(guān)系T是由關(guān)系R與關(guān)系s進行笛卡爾積運算得到的。
\n
69.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。
70.A\nFor循環(huán)結(jié)束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。
\n
71.A
72.C
73.A解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為表中的一個屬性,對應(yīng)表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。
74.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認測試和驗收的依據(jù)。
75.D
76.A”%”是求余運算符或模運算符,”%”兩側(cè)均應(yīng)為整型數(shù)據(jù),選項A)中的X是double型數(shù)據(jù)。
77.Atypedef并不是增加了新類型,面是用一個新名字替代已存在的類型,不能為變量說明一個新名,使用typedef可以增強程序的可移植性。所以A選項錯誤:
78.D
79.A
80.C分布式數(shù)據(jù)庫是一種將數(shù)據(jù)分布存儲,但數(shù)據(jù)在邏輯上保持整體性的一種數(shù)據(jù)庫。分布式數(shù)據(jù)庫系統(tǒng)具有以下幾個特點:
(1)數(shù)據(jù)的物理分布性。分布式數(shù)據(jù)庫的數(shù)據(jù)不是存儲在一個場地上,不是集中存儲,而是存儲在計算機網(wǎng)絡(luò)上多個場的設(shè)備上。
(2)數(shù)據(jù)的邏輯整體性。雖然數(shù)據(jù)分布在各個場地,但邏輯上是一個整體,它們被所有的用戶共享,并由一個DDBMS統(tǒng)一管理。
(3)位置透明性和復(fù)制透明性。位置透明性是指用戶不必關(guān)心數(shù)據(jù)的邏輯分區(qū),不必關(guān)心數(shù)據(jù)物理位置分布的細節(jié);而復(fù)制透明性是指用戶不用關(guān)心數(shù)據(jù)庫在網(wǎng)絡(luò)中各個結(jié)點的復(fù)制情況,被復(fù)制的數(shù)據(jù)的更新都由系統(tǒng)自動完成。
(4)場地自治性。各場地的數(shù)據(jù)由本地DBMS管理,具有自治處理能力,能執(zhí)行局部的應(yīng)用請求。
(5)數(shù)據(jù)冗余及冗余透明性。與集中式數(shù)據(jù)庫系統(tǒng)追求低冗余度不同,DDBS通過數(shù)據(jù)的適當冗余來提高系統(tǒng)的可靠性、可用性和改善系統(tǒng)性能。但這種冗余對用戶是透明的,即用戶不必知道冗余的存在,冗余副本之間的數(shù)據(jù)一致性問題由系統(tǒng)負責(zé)。
(6)事務(wù)管理的分布性。數(shù)據(jù)的分布性必然造成事務(wù)執(zhí)行和管理的分布性,即一個全局事務(wù)的執(zhí)行可分解為在若干場地上子事務(wù)(局部事務(wù))的執(zhí)行。事務(wù)的原子性、一致性、隔離性、持久性以及事務(wù)的恢復(fù)也都具有分布性特點。
81.(1)錯誤:str=P;
正確:p=str;
(2)錯誤:i++;
正確:i++;p++;
(3)錯誤:a[i]=0;
正確:a[i]=ˊ\0ˊ;
【解析】由函數(shù)proc()可知,變量p是指向字符串的指針,其初始化應(yīng)為字符串首地址,因此,“str=p;”應(yīng)改為“p=str;”;將P指向的字符串中的每一個字符插在m個*之后,并存放在字符串數(shù)組a中,因此,“i++;”應(yīng)改為“i++;p++;”;操作完成后要為字符串數(shù)組添加結(jié)束符,因此“a[i]=0;”應(yīng)改為“a[i]=ˊ\0ˊ;”。
82.voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(j=0;j<nn;j++)/*將二維數(shù)組中的數(shù)據(jù)按列的順序依次存入一維數(shù)組中*/for(i=0;i<=""p="">{b[*n]=*(*(s+i)+j);*n=*n+1;/*通過指針返回元素個數(shù)*/}}題目要求實現(xiàn)將二維數(shù)組元素存入一維數(shù)組。使用for循環(huán)語句來控制二維數(shù)組元素的下標,同時使用指針變量配合操作??梢杂脙蓚€循環(huán)來處理問題,由于是按列的順序取出,因此第1個循環(huán)用于控制列下標,第2個循環(huán)用于控制行下標。2021-2022年內(nèi)蒙古自治區(qū)錫林郭勒盟全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結(jié)果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
2.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()
A.希爾排序B.堆排序C.冒泡排序D.快速排序
3.以下敘述中錯誤的是()。
A.在同一源文件中,函數(shù)名必須唯一
B.凡是帶有返回值的庫函數(shù),都不能通過加分號而作為獨立的語句出現(xiàn)
C.不同函數(shù)中的形式參數(shù)可以同名
D.返回基本數(shù)據(jù)類型的庫函數(shù)的調(diào)用,均可以出現(xiàn)在賦值號右邊的表達式中
4.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
5.請選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
6.if語句的基本形式是“if(表達式)語句”,以下關(guān)于“表達式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
7.
8.設(shè)某無向圖中有n個頂點e條邊,則建立該圖鄰接表的時間復(fù)雜度為()。
A.O(n+e)B.O(n^2)C.O(ne)D.O(n^3)
9.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);
B.scanf("%*3d%3d%3d",&a,&b);
C.scanf("%3d%3d%*3d",&a,&b);
D.scanf("%3d%*2d%3d",&a,&b);
10.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。
A.p+1B.a+1C.a++D.++p
11.當用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
12.棧通常采用的兩種存儲結(jié)構(gòu)是A.A.線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B.散列方式和索引方式
C.鏈表存儲結(jié)構(gòu)和數(shù)組
D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
13.如果定義“班級”關(guān)系如下:班級(班級號,總?cè)霐?shù),所屬學(xué)院,班級學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
14.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
15.在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時所需進行的關(guān)鍵字比較次數(shù)是()
A.1B.2C.3D.4
16.
17.直接選擇排序的時間復(fù)雜度為()。(n為元素個數(shù))
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)
18.
19.下列敘述中正確的是()。
A.線性鏈表中的各元素在存儲空間中的位置必須是連續(xù)的
B.線性鏈表中的表頭元素一定存儲在其他元素的前面
C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
20.設(shè)有如下類型說明語句:typedefstruct{intnum;struct{inty,m,d;}date;}PER;則以下定義結(jié)構(gòu)體數(shù)組并賦初值的語句中錯誤的是()。
A.PERst[2]={{1001},2008,8,1,{1002},2006,5,20};
B.PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};
C.PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};
D.PERst[2]={1001,2008,8,1,1002,2006,5,20};
二、2.填空題(20題)21.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
22.以下程序把從終端讀入的20個整數(shù)以二進制方式寫到一個名為d.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if((fp=fopen(【】,"wb"))==NULL)exit(0);
for(i=0;i<20;i++)
{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}
fclose(fp);
}
23.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
24.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計方法有兩種設(shè)計策略,它們是變換分析設(shè)計和______。
25.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
26.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
27.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
28.有以下程序:
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
執(zhí)行后的輸出結(jié)果是【】。
29.以下程序運行后的輸出結(jié)果是【】。(注:如果結(jié)果中含有回車,可加一空格寫在一行,例如:
111
111
111
可以寫成:111111111。
#include<stdio.h>
mala()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
30.下面函數(shù)用來求兩個單精度數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>
voidsub(floatx,floaty,【】z)
{【】=x+y;}
31.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
32.以下程序運行結(jié)果是【】。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)return(2);
p=x*func(x-1);
return(p);}
main()
{printf("%d\n",func(4));}
33.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
34.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
35.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
36.在關(guān)系模型中,二維表的行稱為______。
37.對下列二叉樹進行中序遍歷的結(jié)果為【】。
38.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
39.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
40.以下程序的運行結(jié)果是______。
intx;
main()
{inta=5,b=8;
swap(a,b);
printf("a=%d,b=%d,x=%d\n",a,b,x);
}
swap(inta,intb)
{inttemp;
temp=a;a=b;
b=temp;x=a/b;
printf("x=%d\n",x);
}
三、1.選擇題(20題)41.下列程序的運行結(jié)果是()。
#include<stdio.h>
main()
{stmctdate
{intyear,month,day;
}today;
primf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
42.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
A.-6B.1C.2D.-12
43.以下程序的輸出結(jié)果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
44.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.0C.1D.2
45.運行下面的程序,輸入字符串MicrosoftVisualStudio,則程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){charChr[20];scanf("%s",&Chr);printf("%s\n”,Chr);}
A.MicrosoftVisua1Studio
B.M
C.Microsoft
D.MicrosoflVisualStudio
46.有以下程序段:charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCⅡ十進制代碼為97,則執(zhí)行上述程序段后輸出的結(jié)果是()。
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
47.下列敘述中正確的是_______。
A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鍵表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
48.下列可用于C語言標識符的一組是_______。
A.voidWORDdefine
B.a6$sysFor
C.2asizeofabc
D.Intdefinesizeof
49.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
50.有以下程序
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的運行結(jié)果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
51.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}
A.{B.1C.2D.-12
52.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。
A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m
53.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。
A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移
54.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶定義的完整性
C.實體完整性和用戶定義的完整性
D.實體完整性、參照完整性和用戶定義的完整性
55.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運行后的輸出結(jié)果是()。
A.-1B.65535C.32767D.-32768
56.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
57.下面程序的輸出結(jié)果是()#definePI3.1415#defineARE(x)PI*x*xmain(){intr=2;printf("%f",ARE(r+1));}
A.28.26B.28.26C.9.28D.9.28
58.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
59.對下述程序的判斷中,正確的是#include<stdio.h>voidmain(){char*p,s[128];p=S;while(strcmp(s,"End")){printf("Inputastring:");gets(s);while(*p)putchar(*p++);}}
A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止
B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串
60.有以下程序
#include<stdio.h>
voidfun(int*s,intn1,intn2)
{inti,j,t;
i=n1;j=n2;
while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(k=0;k<l0;k++)printf("%d",a[k]);printf("\n");
}
程序的運行結(jié)果是
A.0987654321B.4321098765C.5678901234D.0987651234
四、選擇題(20題)61.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。
A.廣播電視是一種雙向的、點到多點的信息交互系自
B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)
C.電話是一種雙向的、點對點的、以信息交互為主要的的系統(tǒng)
D.雷達是一種以感測和識別為主要目的的系統(tǒng)
62.
63.
64.
65.以下程序的運行結(jié)果是()。
#include<stdio.h>
main{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}
A.0B.1C.2D.3
66.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復(fù)制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
67.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:
structst
{charname[15];
intage;
}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);
執(zhí)行語句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結(jié)果為()。A.A.15,AB.16,HC.16,AD.17,H
68.設(shè)有如下三個關(guān)系表
下列操作中正確的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
69.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
70.有以下程序:
#include<stdio.h>
main()
{inta[]={10,20,30,40},*p=a,j;
for(i=0;i<=3;i++){a[i]=*P;p++;}
printf("oAd\n",a[2]);
}
程序運行后的輸出結(jié)果是()。
A.30
B.40
C.10
D.20
71.
72.
73.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
74.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
75.
76.已知各變量的類型說明如下:
則以下不符合C
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版七年級數(shù)學(xué)上冊2.2《 多項式》聽評課記錄2
- 大學(xué)生工作計劃范文
- 社區(qū)健康促進工作計劃
- 合作開發(fā)框架協(xié)議書范本
- 上海市商業(yè)特許經(jīng)營協(xié)議書范本
- 公司辦公用房承租協(xié)議書范本
- 設(shè)備試用協(xié)議書范本
- 質(zhì)點運動和牛頓三定律模擬
- 隧道棚洞施工方案
- 人教版地理八年級下冊第五章《中國地理差異》(第1課時 區(qū)域差異)聽課評課記錄
- 中央2025年交通運輸部所屬事業(yè)單位招聘261人筆試歷年參考題庫附帶答案詳解
- 2025年上半年上半年重慶三峽融資擔(dān)保集團股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標管理制度
- 特殊教育學(xué)校2024-2025學(xué)年度第二學(xué)期教學(xué)工作計劃
- 2025年技術(shù)員個人工作計劃例文(四篇)
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學(xué)語文模擬試卷(9)-江西省(解析版)
- 無人機運營方案
- 糖尿病高滲昏迷指南
評論
0/150
提交評論