![2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8621.gif)
![2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8622.gif)
![2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8623.gif)
![2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8624.gif)
![2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8625.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列關(guān)于標(biāo)識符的說法中錯誤的是
A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符
C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D.用戶標(biāo)識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
2.
3.算法的時間復(fù)雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運算次數(shù)
4.
5.
6.語句int(*ptr)的含義是()。
A.ptr是一個返回值為int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
7.fscanf函數(shù)的正確調(diào)用形式是()
A.fscanf(fp,格式字符串,輸出表列);
B.fscanf(格式字符串,輸出表列,fp);
C.fscanf(格式字符串,文件指針,輸出表列),
D.fscanf(文件指針,格式字符串,輸入表列);
8.軟件生命周期中,花費最多的階段是()。
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護(hù)
9.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
10.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
11.
12.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0
13.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序運行后的輸出結(jié)果是()。A.ZhangB.ZhaoC.WangD.19
14.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應(yīng)用程序所共享。
A.視圖B.消息C.數(shù)據(jù)D.關(guān)系
15.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
16.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
執(zhí)行程序時,給變量x輸入l0,程序的輸出結(jié)果是()。
A.55
B.54
C.65
D.45
17.下列給字符數(shù)組初始化中,()是正確的。
A.chars2[3]="xyz";
B.chars1[]="abcd";
C.chars3[][3]={'a','x','y'};
D.chars4[2][3]={"xyz","mnp"};
18.順序查找不論在順序線性表中還是在鏈?zhǔn)骄€性表中的時間復(fù)雜度為()。
A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)
19.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值
20.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結(jié)果是()。A.741B.963C.852D.875421
二、2.填空題(20題)21.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
22.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
23.以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如;str所指字符串為:Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
24.無論對于順序存儲,還是鏈接存儲的棧和隊列來說,進(jìn)行插入或刪除運算的時間復(fù)雜性均相同,則為【】。
25.以下程序的功能是將寧符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf4568h,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdio.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);
}
26.要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù);
for(i=0;i<=【】;printf("%d\n",i+=2));
27.對二叉排序樹進(jìn)行查找的方法是:用待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在【】子樹中找。
28.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后的輸出結(jié)果是【】。
29.若輸入字符串:abcde↓,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
30.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。
31.下面程序由兩個源程序文件:t4.h和t4.c組成,程序編譯運行的結(jié)果是:【】。
t4.h的源程序為:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序為:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
32.把數(shù)學(xué)表達(dá)式改寫成C語言的表達(dá)式是【】。
33.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。
34.Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向______的設(shè)計方法。
35.表示“整數(shù)x的平方大于36"時的值為“真”的C語言邏輯表達(dá)式是【】。
36.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。
37.下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個數(shù)中,求出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
38.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達(dá)式是【】。
39.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
40.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
三、1.選擇題(20題)41.現(xiàn)有格式化輸入語句,
A.intB.floatC.doubleD.不確定
42.下列關(guān)于標(biāo)識符的說法中錯誤的是
A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符
C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D.用戶標(biāo)識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
43.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
44.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是
A.集合B.線性表C.二叉樹D.圖
45.下列程序執(zhí)行后輸出結(jié)果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}
A.you&meB.youC.meD.err
46.在下列定義中的共用體所占內(nèi)存字節(jié)數(shù)是()。union{chark[6];struct{intm;floarf;}a;doubled;}b;
A.8B.14C.18D.10
47.下列敘述中正確的是______。
A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方
B.花括號""{""和""}""只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的—部分
48.下列寫法正確的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
49.關(guān)于if后一對圓括號中的表達(dá)式,以下敘述中正確的是()
A.只能用邏輯表達(dá)式B.只能用關(guān)系表達(dá)式C.既可用邏輯表達(dá)式也可用關(guān)系表達(dá)式D.可用任意表達(dá)式
50.一個良好的算法由下面的基本結(jié)構(gòu)組成,但不包括______。
A.順序結(jié)構(gòu)B.選擇結(jié)構(gòu)C.循環(huán)結(jié)構(gòu)D.跳轉(zhuǎn)結(jié)構(gòu)
51.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
52.若一個名部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。
A.將變量存儲在靜態(tài)存儲區(qū)B.使變量X可以由系統(tǒng)自動初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留
53.若有定義inta[9],*p=a;則p+5表示
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
54.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
55.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
56.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
57.以下程序的運行結(jié)果為______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}
A.1123581321
B.1122551010
C.1258981321
D.0112451521
58.以下不正確的敘述是A.A.在C程序中,逗號運算符的優(yōu)先級最低
B.在C程序中,APH和aph是兩個不同的變量
C.若a和b類型相同,在計算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值
59.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
60.以下對枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
四、選擇題(20題)61.有以下程序
62.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
63.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖內(nèi)容的是
A.控制流B.加工C.?dāng)?shù)據(jù)存儲D.?dāng)?shù)據(jù)流
64.常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
66.有以下程序:
程序運行后的輸出結(jié)果是()。
A.3B.1C.2D.0
67.
68.軟件(程序)調(diào)試的任務(wù)是()。
A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現(xiàn)程序中的錯誤C.發(fā)現(xiàn)并改正程序中的所有錯誤D.確定程序中錯誤的性質(zhì)
69.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。
70.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運算符。A.A.&B.^C.||D.~
71.下列關(guān)于棧的敘述中正確的是()。
A.在棧中只能插入數(shù)據(jù),不能刪除數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù),不能插入數(shù)據(jù)
C.棧是先進(jìn)后出(FILO.的線性表
D.棧是先進(jìn)先出(FIFO.的線性表
72.
73.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
74.C語言中用于結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B.if、switch、break
C.for、while、do-while
D.if、for、continue
75.有以下程序:
#include<stdio.h>
main()
{intX=011;
printf("%d\n",++x);
}
程序運行后的輸出結(jié)果是()。
A.12B.11C.10D.9
76.下列敘述中正確的是()。
A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.以上說法都不正確
77.
78.下列關(guān)于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
79.若有說明:inti,j=7,*p=&i;,則與i=j;等價的語句是()。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
80.有兩個關(guān)系R、S如下:
由關(guān)系R通過運算得到關(guān)系s,則所使用的運算為()。
A.選擇B.投影C.插入D.連接
五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
參考答案
1.D解析:用戶標(biāo)識符與關(guān)鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應(yīng)該改為用戶標(biāo)識符與關(guān)鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標(biāo)識符第一個字符必須為字母或下劃線。
2.A
3.DD?!窘馕觥克惴ǖ臅r間復(fù)雜度是指算法需要消耗的時間資源。一般來說,計算機算法是問題規(guī)模。09函數(shù)fin),算法的時間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時間的增長率與f(n)的增長率正相關(guān),稱作漸進(jìn)時間復(fù)雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運算次數(shù)。
4.A
5.D
6.C本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標(biāo)識符(*指針變量名)()?!邦愋蜆?biāo)識符”為函數(shù)返回值的類型。
7.D
8.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護(hù)階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設(shè)計、詳細(xì)設(shè)計、開發(fā)和測試;維護(hù)階段是一個單獨階段,不包含在開發(fā)階段內(nèi),它是所花費用最多的一個階段。
9.Awhile循環(huán)的執(zhí)行過程如下:①計算while后面圓括號中表達(dá)式的值。當(dāng)值為非0時,執(zhí)行步驟②;當(dāng)值為0時,執(zhí)行步驟④。②執(zhí)行循環(huán)體一次。③轉(zhuǎn)去執(zhí)行步驟①。④退出循環(huán)。在選項A中,表達(dá)式(ch=get-char)!=N表示輸入的字符不等于N,如果這個條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán)。所以選項A為正確答案。
10.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應(yīng)該是第一參數(shù),選項A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項。
11.D
12.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。
13.Bfun(x+2)表示的是結(jié)構(gòu)體數(shù)組中的第3個元素即{03,"Zhao",l8),而輸出的是name元素,所以答案為B。
14.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系-故答案為C。
15.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
16.A\n本題在函數(shù)intfun(intn)的定義中又出現(xiàn)了對函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時,當(dāng)輸入10賦給變量X時,遞歸調(diào)用的過程為
\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)
\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)
\n=10+9++8+7+6+5+fun(4)
\n=10+9++8+7+6+5+4+fun(3)
\n=10+9++8+7+6+5+4+3+fun(2)
\n=10+9++8+7+6+5+4+3+2+fun(1)
\n=10+9++8+7+6+5+4+3+2=55
\n
17.A
18.A
19.C用int方法定義變量時,編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。
20.C在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達(dá)式--Y的值。Y先自減l,然后再輸出y的值。
21.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時,判斷條件不滿足,退出循環(huán)。
22.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
23.&P(n)或p+n&P(n)或p+n解析:因為n被初始化為0、p被初始化指向str所指字符串的首地址,所以while循環(huán)的功能是從str所指字符串的第1個字符開始比較,若等于c或等于字符串結(jié)束符'\\0'就跳出循環(huán)。故循環(huán)結(jié)束后,若p[n]為'\\0',則證明str所指字符串不包含c中的字符,應(yīng)該返回NULL,否則應(yīng)該返回p[n]的地址值。返回NULL在第2條if語句中已經(jīng)實現(xiàn),所以我們應(yīng)該填入的表達(dá)式為p[n]的地址值,即&p[n]或p+n。
24.O(2)
25.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或\'9\'>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:本題中,chars[80],d[80];定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的ASCII碼值是否在48(\'0\'的ASCII代碼)與57(\'9\'的ASCII代碼)之間,或者直接與\'0\',\'9\'進(jìn)行比較,如果是數(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])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或9\'>>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]。
26.18或1918或19
27.左左解析:對二叉排序樹進(jìn)行查找,若待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在左子樹中找;若比根大,則在右子樹中找。
28.5858解析:for循環(huán)語句中continue語句的作用是當(dāng)數(shù)組元素值小于0時,結(jié)束本次j循環(huán),break語句的作用是當(dāng)數(shù)組元素值等于0時,結(jié)束j循環(huán),所以for循環(huán)語句的功能是計算數(shù)組元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。
29.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。
30.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。
31.16111611解析:題目中第1條要替換的語句i=f(1+1);展開后是i=((1+1)*M);繼續(xù)展開為i((1+1*8),結(jié)果使i=16。而第2條語句j=f2(1+1)”;展開后為j=(1+1*N);繼續(xù)展開為j=(1+1*10),結(jié)果使j=11。故程序運行的結(jié)果是輸出1611。
32.(cosx)*(cosx)*(m+n)/(m-n)
33.關(guān)系或一個關(guān)系關(guān)系或一個關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關(guān)系。
34.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
35.x<-6||x>6
36.軟件工程學(xué)軟件工程學(xué)
37.q<p+nq<p+n解析:通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進(jìn)行引用。
38.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。
39.k-1k,-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。
40.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
41.C解析:根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結(jié)果最終也是double型。
42.D解析:用戶標(biāo)識符與關(guān)鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應(yīng)該改為用戶標(biāo)識符與關(guān)鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標(biāo)識符第一個字符必須為字母或下劃線。
43.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應(yīng)用。在使用一個指針變量之前,先要用聲明語句對其進(jìn)行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關(guān)指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。
44.B解析:所謂的線性結(jié)構(gòu):如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件,即
1)有且只有一個根結(jié)點;
2)每一個結(jié)點最多有一個前件,也最多有一個后件。同時滿足兩個條件的只有線性表,而其他三種數(shù)據(jù)結(jié)構(gòu)的結(jié)點可能存在多個前件或后件,所以不是線性結(jié)構(gòu)。
45.A
46.A解析:結(jié)構(gòu)體變量所占的存儲空間是各個分量所占空間的總和。共用體變量中的所有成員占有同一個存儲空間,其字節(jié)數(shù)與成員中占字節(jié)數(shù)最多的那個成員相等。m占2個字節(jié),f占4個字節(jié),因此結(jié)構(gòu)體變量a所占的存儲空間為6字節(jié)。k[6]占6個字節(jié),d占8個字節(jié)。共用體變量b所占的存儲空間與占存儲空間最多的d所占存儲空間的字節(jié)數(shù)相同。所以,A選項為所選。
47.A解析:C程序中注釋部分用“/*”和“*/”括起來,可以出現(xiàn)在程序中任何合適的地方;花括號“{”和“}”不僅可作為函數(shù)體的定界符,也可作為復(fù)合語句的定界符;構(gòu)成C程序的基本單位是函數(shù):—個語句必須在最后出現(xiàn)分號,分號是C語句中不可缺少的部分。
48.D解析:本題考查語句的基本構(gòu)成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。
49.D
50.D解析:1966年,Bohra和Jacopini提出了以下三種結(jié)構(gòu),用這三咱基本結(jié)構(gòu)作為表示一個良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。
51.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。
52.C解析:事實上,無論有無Static修飾,外部變量都具有A、B和C三種特性。作為—種修飾,static僅是限制此類型外部變量的引用范圍C只能在定義它的文件范圍內(nèi)使用。
53.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動了5個int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。
54.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
55.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點。
56.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
57.A
58.D解析:在C語言所有的運算符中,逗號運算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達(dá)式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數(shù)據(jù)。選項D)中當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實型變量可以輸入實型數(shù)值和整型數(shù)值等。
59.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
60.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。
61.Af(2)展開后為,2*5+1,值為ll,f(1+1)展開后為,l+1*5+1值為7,所以答案選擇A):
62.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。
63.A數(shù)據(jù)流圖(DFD)是用來描繪系統(tǒng)的邏輯模型的,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,反映系統(tǒng)必須完成的邏輯功能。
數(shù)據(jù)流圖的4種基本符號分別是數(shù)據(jù)的源點或終點、數(shù)據(jù)流、數(shù)據(jù)存儲和加工。
64.AA。【解析】線性表的存儲通常分為兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。
\n
65.Afun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時初始化一次。首先實參的數(shù)值是一12,if判斷后輸出負(fù)號,并將n=12,計算k+=n%10一k+=2—2,因此輸出2,后將數(shù)值除以10,結(jié)果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時n=1,k=2,計算k+=n%10-÷k+=1——*3,因此打印3。故最后打印結(jié)果為一2,3,。故答案為A選項。
66.A本愿考查位運算符以及相關(guān)運算,‘為按位或,&為按位與,部么a"b為3,再與c按位與仍然為3,所以答案為A選項。
67.B
68.A解析:軟件調(diào)試的任務(wù)是診斷和改正程序中的錯誤,本題正確答案為A)。其他二項描述不正確,選項B)描述不全面,選項C)描述太絕對,選項D)描述不符合定義。
69.AB選項中switch((int)x);語句中不應(yīng)該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達(dá)式的類型必須與switch后面表達(dá)式的類型一致,所以D錯誤。
70.B解析:按邏輯位運算的特定作用主要有3點:①用按位與運算將特定位清0或保留特定位:②用按位或運算將特定的位置設(shè)置為1;③用按位異或運算將某個變量的特定位翻轉(zhuǎn)或交換兩個變量的值。
71.C\n棧是限定在一端進(jìn)行插入與刪除的線性表。棧是按照“先進(jìn)后出”的或后進(jìn)先出的原則組織數(shù)據(jù)的,因此,棧也被稱為“先進(jìn)后出”表或“后進(jìn)先出”表。本題答案是C)。
\n
72.A
73.B選項A為表達(dá)式,因此不正確,選項C中a++本身就是表達(dá)式,無需再賦值,選項D中,在強制類型轉(zhuǎn)換時,類型名應(yīng)用括號括起來,故選擇8選項。
74.A解析:結(jié)構(gòu)化程序由3種基本結(jié)構(gòu)組成,即順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)(包括for語句、while語句及do…\u3000while語句)和選擇結(jié)構(gòu)(包括if語句和switch語句)。
75.C\n考查簡單的c程序,題目中x=011而輸出函數(shù)中是++x,說明是先加l,所以為l0,答案選擇C。
\n
76.CC【解析】棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來操作,所以選擇C。
77.A
78.D本題主要考查自加與自減運算符。在C語言中,自加與自減運算符具有以下性質(zhì):
(1)自加運算符“++”和自減運算符“--”的運算本身是一種賦值運算,其結(jié)果是使運算對象的值增1或減1。
(2)++、--運算符是單目運算符,運算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達(dá)式。
(3)自加、自減運算符無論是作為前綴還是后綴運算符,對于變量而言,其效果相同,但作為表達(dá)式來說,其值不同。
(4)++和--運算符的結(jié)合方向是“自右向左”。
(5)不要在一個表達(dá)式中對同一個變量進(jìn)行多次自增或自減運算??梢灾辣绢}正確的答案是D。
79.B
80.B解析:專門的關(guān)系運算包括:選擇、投影和連接。1、選擇:從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇是從行的角度進(jìn)行的運算,即從水平方向抽取記錄。2、投影:從關(guān)系模式中指定若干個屬性組成新的關(guān)系。投影是從列的角度進(jìn)行的運算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。3、連接:連接是關(guān)系的橫向結(jié)合。連接運算將兩個關(guān)系模式拼接成一個更寬的關(guān)系模式,生成的新關(guān)系中包含滿足連接條件的元組。連接過程是通過連接條件來控制的,連接條件中將出現(xiàn)兩個表中的公共屬性名,或者具有相同語義、可比的屬性。選擇和投影運算的操作對象只是一個表。相當(dāng)于對一個二維表進(jìn)行切割。連接運算需要兩個表操作為操作對象。由圖可知關(guān)系R通過運算得到關(guān)系S。關(guān)系S與關(guān)系R相比,記錄的條數(shù)沒有發(fā)生變化,屬性的個數(shù)發(fā)生了變化。因此所使用的運算應(yīng)該是投影。選項C插入運算會增加記錄的條數(shù)。所以選項B是正確的。
81.
82.1intfun(inta[M][N])2{3inti,j,sum=0;4for(i=0;i<m;i++)5for(j=0;j<n;j++)6if(i==o||i==M-1||j==0||j==N-1)/*只要下標(biāo)中有一個為?;騇-1或N-1,則它一定是周邊元素*/7sum=sum+a[i][j];/*將周邊元素相加*/8returnsum;9}本題采用逐一判斷的方式求數(shù)組周邊元素和。二維數(shù)組周邊元素的規(guī)律是,其兩個下標(biāo)中一定有一個是0或M-1或N-1。程序中循環(huán)語句用來控制數(shù)組的行和列,條件語句用來判斷數(shù)組元素是否為周邊元素。</n;j++)</m;i++)</n;j++)</m;i++)2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列關(guān)于標(biāo)識符的說法中錯誤的是
A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符
C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D.用戶標(biāo)識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
2.
3.算法的時間復(fù)雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運算次數(shù)
4.
5.
6.語句int(*ptr)的含義是()。
A.ptr是一個返回值為int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
7.fscanf函數(shù)的正確調(diào)用形式是()
A.fscanf(fp,格式字符串,輸出表列);
B.fscanf(格式字符串,輸出表列,fp);
C.fscanf(格式字符串,文件指針,輸出表列),
D.fscanf(文件指針,格式字符串,輸入表列);
8.軟件生命周期中,花費最多的階段是()。
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護(hù)
9.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
10.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
11.
12.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0
13.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序運行后的輸出結(jié)果是()。A.ZhangB.ZhaoC.WangD.19
14.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應(yīng)用程序所共享。
A.視圖B.消息C.數(shù)據(jù)D.關(guān)系
15.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
16.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
執(zhí)行程序時,給變量x輸入l0,程序的輸出結(jié)果是()。
A.55
B.54
C.65
D.45
17.下列給字符數(shù)組初始化中,()是正確的。
A.chars2[3]="xyz";
B.chars1[]="abcd";
C.chars3[][3]={'a','x','y'};
D.chars4[2][3]={"xyz","mnp"};
18.順序查找不論在順序線性表中還是在鏈?zhǔn)骄€性表中的時間復(fù)雜度為()。
A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)
19.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值
20.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結(jié)果是()。A.741B.963C.852D.875421
二、2.填空題(20題)21.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
22.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
23.以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如;str所指字符串為:Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
24.無論對于順序存儲,還是鏈接存儲的棧和隊列來說,進(jìn)行插入或刪除運算的時間復(fù)雜性均相同,則為【】。
25.以下程序的功能是將寧符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf4568h,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdio.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);
}
26.要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù);
for(i=0;i<=【】;printf("%d\n",i+=2));
27.對二叉排序樹進(jìn)行查找的方法是:用待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在【】子樹中找。
28.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后的輸出結(jié)果是【】。
29.若輸入字符串:abcde↓,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
30.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。
31.下面程序由兩個源程序文件:t4.h和t4.c組成,程序編譯運行的結(jié)果是:【】。
t4.h的源程序為:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序為:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
32.把數(shù)學(xué)表達(dá)式改寫成C語言的表達(dá)式是【】。
33.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。
34.Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向______的設(shè)計方法。
35.表示“整數(shù)x的平方大于36"時的值為“真”的C語言邏輯表達(dá)式是【】。
36.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。
37.下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個數(shù)中,求出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
38.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達(dá)式是【】。
39.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
40.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
三、1.選擇題(20題)41.現(xiàn)有格式化輸入語句,
A.intB.floatC.doubleD.不確定
42.下列關(guān)于標(biāo)識符的說法中錯誤的是
A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符
C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符
D.用戶標(biāo)識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
43.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
44.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是
A.集合B.線性表C.二叉樹D.圖
45.下列程序執(zhí)行后輸出結(jié)果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}
A.you&meB.youC.meD.err
46.在下列定義中的共用體所占內(nèi)存字節(jié)數(shù)是()。union{chark[6];struct{intm;floarf;}a;doubled;}b;
A.8B.14C.18D.10
47.下列敘述中正確的是______。
A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方
B.花括號""{""和""}""只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的—部分
48.下列寫法正確的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
49.關(guān)于if后一對圓括號中的表達(dá)式,以下敘述中正確的是()
A.只能用邏輯表達(dá)式B.只能用關(guān)系表達(dá)式C.既可用邏輯表達(dá)式也可用關(guān)系表達(dá)式D.可用任意表達(dá)式
50.一個良好的算法由下面的基本結(jié)構(gòu)組成,但不包括______。
A.順序結(jié)構(gòu)B.選擇結(jié)構(gòu)C.循環(huán)結(jié)構(gòu)D.跳轉(zhuǎn)結(jié)構(gòu)
51.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
52.若一個名部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。
A.將變量存儲在靜態(tài)存儲區(qū)B.使變量X可以由系統(tǒng)自動初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留
53.若有定義inta[9],*p=a;則p+5表示
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
54.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
55.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
56.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
57.以下程序的運行結(jié)果為______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}
A.1123581321
B.1122551010
C.1258981321
D.0112451521
58.以下不正確的敘述是A.A.在C程序中,逗號運算符的優(yōu)先級最低
B.在C程序中,APH和aph是兩個不同的變量
C.若a和b類型相同,在計算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值
59.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼的檢索頻率排好序
60.以下對枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
四、選擇題(20題)61.有以下程序
62.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
63.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖內(nèi)容的是
A.控制流B.加工C.?dāng)?shù)據(jù)存儲D.?dāng)?shù)據(jù)流
64.常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
66.有以下程序:
程序運行后的輸出結(jié)果是()。
A.3B.1C.2D.0
67.
68.軟件(程序)調(diào)試的任務(wù)是()。
A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現(xiàn)程序中的錯誤C.發(fā)現(xiàn)并改正程序中的所有錯誤D.確定程序中錯誤的性質(zhì)
69.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。
70.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運算符。A.A.&B.^C.||D.~
71.下列關(guān)于棧的敘述中正確的是()。
A.在棧中只能插入數(shù)據(jù),不能刪除數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù),不能插入數(shù)據(jù)
C.棧是先進(jìn)后出(FILO.的線性表
D.棧是先進(jìn)先出(FIFO.的線性表
72.
73.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
74.C語言中用于結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B.if、switch、break
C.for、while、do-while
D.if、for、continue
75.有以下程序:
#include<stdio.h>
main()
{intX=011;
printf("%d\n",++x);
}
程序運行后的輸出結(jié)果是()。
A.12B.11C.10D.9
76.下列敘述中正確的是()。
A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.以上說法都不正確
77.
78.下列關(guān)于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
79.若有說明:inti,j=7,*p=&i;,則與i=j;等價的語句是()。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
80.有兩個關(guān)系R、S如下:
由關(guān)系R通過運算得到關(guān)系s,則所使用的運算為()。
A.選擇B.投影C.插入D.連接
五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
參考答案
1.D解析:用戶標(biāo)識符與關(guān)鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應(yīng)該改為用戶標(biāo)識符與關(guān)鍵字相同,程序在編譯時將給出出錯信
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育科技在小學(xué)數(shù)學(xué)益智挑戰(zhàn)賽中的應(yīng)用
- 科技引領(lǐng)商業(yè)新格局機遇與挑戰(zhàn)共存
- 2025年度特種設(shè)備安裝與操作培訓(xùn)合同
- 二零二五年度汽車借用免責(zé)及車輛性能評估合同
- 二零二五年度2025年度環(huán)境衛(wèi)生清掃保潔與廢棄物末端處理收運合同
- 2025年度電梯門套安裝與電梯間緊急救援系統(tǒng)合同
- 二零二五年度智能城市建設(shè)項目施工人員勞動合同解除合同
- 節(jié)能環(huán)?,F(xiàn)代學(xué)校辦公與閱讀區(qū)域的照明優(yōu)化策略
- 二零二五年度租房合同免責(zé)條款撰寫指南
- 自然學(xué)科教學(xué)中的情感教育與學(xué)生心理發(fā)展研究
- 搞笑小品劇本《大城小事》臺詞完整版
- 人大代表小組活動計劃人大代表活動方案
- 《大模型原理與技術(shù)》全套教學(xué)課件
- 2023年護(hù)理人員分層培訓(xùn)、考核計劃表
- 靜脈輸液法操作并發(fā)癥的預(yù)防及處理
- 2025年高考語文作文備考:議論文萬能模板
- 歷史時間軸全
- T-BJCC 1003-2024 首店、首發(fā)活動、首發(fā)中心界定標(biāo)準(zhǔn)
- 外科手術(shù)及護(hù)理常規(guī)
- 鐵嶺衛(wèi)生職業(yè)學(xué)院單招參考試題庫(含答案)
- 大美陜西歡迎你-最全面的陜西省簡介課件
評論
0/150
提交評論