2021年河南省商丘市全國計算機等級考試C語言程序設計_第1頁
2021年河南省商丘市全國計算機等級考試C語言程序設計_第2頁
2021年河南省商丘市全國計算機等級考試C語言程序設計_第3頁
2021年河南省商丘市全國計算機等級考試C語言程序設計_第4頁
2021年河南省商丘市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩112頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021年河南省商丘市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列程序的輸出的結果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

2.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運行后的輸出結果是()。A.A.b,bB.b,cC.a,bD.a,c

3.有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);}程序的運行結果是()。

A.357B.753C.369D.751

4.下列敘述中正確的是()。

A.一個邏輯數據結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構不影響數據處理的效率

D.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構影響數據處理的效率

5.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

6.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運行結果是()。

A.6B.3C.8D.12

7.在下面棧的基本運算中,不是加工型運算的是______。

A.初始化B.進棧C.退棧D.判棧空

8.數據庫管理系統中負責數據模式定義的語言是()。A.數據定義語言B.數據管理語言C.數據操縱語言D.數據控制語言

9.設有定義“intm=1,n=2;”,則以下if語句中,編譯時會產生錯誤信息的是()。

A.if(m>n)m--elsen--;

B.if(m=n){m++;n++;}

C.if(m<0&&n<0){}

D.if(m>0);elsem++;

10.以下關于C語言的敘述中正確的是()。

A.C語言的數值常量中夾帶空格不影響常量值的正確表示

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數據類型必須一致

D.C語言中的注釋不可以夾在變量名或關鍵字的中間

11.

12.下列說法正確的是()。

A.在C語言中,可以使用動態內存分配技術定義元素個數可變的數組

B.在c語言中,數組元素的個數可以不確定,允許隨機變動

C.在C語言中,數組元素的數據類型可以不一致

D.在C語言中,定義一個數組后.就確定了它所容納的元素的個數

13.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

14.

15.下面結構中最適于表示稀疏無向圖的是()。

A.鄰接矩陣B.逆鄰接表C.鄰接多重表D.十字鏈表

16.軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發過程

17.下述哪一條是順序存儲結構的優點()。

A.插入運算方便B.可方便地用于各種邏輯結構的存儲表示C.存儲密度大D.刪除運算方便

18.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen("myfile,dat","");{puts("abe",ip);fclose(fp);fp=fopen("myfile.dat","a*");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%S",str);puts(str);fclose(fp);}程序運行后的輸出結果是()。A.abcB.28cC.abc28D.內類型不一致而出錯

19.在位運算中,操作數左移一位,其結果相當于A.A.操作數乘以2

B.操作數除以2

C.操作數除以4

D.操作數乘以4

20.函數fun的功能是在a所指的具有n個元素的數組中查找最大值并返回給調用函數,但函數不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應填入的選項是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

二、2.填空題(20題)21.當執行以下程序時,輸入1234567890<回車>,則其中while循環體將執行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

22.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

printf("%d\n",y);

}

若運行時輸入:1234<回車>,程序的輸出結果是______。

23.以下函數sstrcat的功能是實現字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:,所指字符串為abed,t所指字符串為efgh,調用函數sstrcat后s所指字符串為abcdefgh。請填空。

#inehde<stdio.h>

#include<string.h>

voidsstuat(char*9,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

24.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。

25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發現錯誤的位置并改正錯誤。

26.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環結構。

27.數據結構包括數據的邏輯結構、數據的【】以及對數據的操作運算。

28.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

for(i=0;i<2;i++)

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

printf("%s\n",t);

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。

29.常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數據。

30.在一個容量為25的循環隊列中,若頭指針front=16,尾指針rear=9,則該循環隊列中共有上【】個元素。

31.對于長度為n的順序存儲的線性表,當隨機插入和刪除一個元素時,需平均移動元素的個數為【】。

32.以下程序的輸出結果是【】。

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

33.下列程序執行輸出的結果是【】。

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

for(i=0;i<2;i++)

k=f(a++);

printf("%d\n",k);}

34.請在以下程序第一行的下劃線處填寫適當內容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

35.下面rotme函數的功能是:將n行n列的矩陣A轉置為A'。例如:

請填空。

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for(i=0;i<N;i++)

for(j=0;【】;j++)

{t=a[i][j];

【】;

a[j][i]=t;

}

}

36.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

for(i=0;i<n;i++)

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

37.當數據的物理結構(存儲結構)改變時,不影響數據庫的邏輯結構,從而不致引起應用程序的變化,這是指數據的【】。

38.當運行以下程序時,輸入abed,程序的輸出結果是:【】。

insert(charstr[])

{inti

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*-1]='*';i--;}

printf("%s\n",str);

}

main()

{charstr[40];

scanf("%s",sB);insert(str);

}

39.數據結構分為邏輯結構和存儲結構,循環隊列屬于______結構。

40.結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。

三、1.選擇題(20題)41.若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態存儲單元int*pp=______malloc(sizeof(int));則應填入______。

A.intB.int*C.(*int)D.(int*)

42.對關系S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()

A.并運算B.交運算C.差運算D.積運算

43.若有定義:inta[4][10];,則以下選項中對數組元素a[i][j]引用錯誤的是______。(0<=i<4,0<=j<10)

A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)

44.以下敘述中正確的是()。

A.C程序中注釋部分可以出現在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數體的定界符

C.構成C程序的基本單位是函數,所有函數名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

45.有以下程序#include<stdio.h>#include<string.h>voidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i];s[j];s[j]=t;}}main(){char*ss[]={"bcc

A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

46.下面四個選項中,均是不合法的用戶標識符的選項是()。

A.AP_0doB.floatla0_AC.b-agotointD._123tempint

47.分布式數據庫系統不具有的特點是()。A.A.數據分布性和邏輯整體性B.位置透明性和復制透明性C.分布性D.數據冗余

48.有以下程序中若有如下說明和定義語句;charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;…}以下選項中對函數fun的正確調用語句是______。

A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

49.數據管理技術隨著計算機技術的發展而發展。數據庫階段具有許多特點,但下面列出的特點中,______不是數據庫階段的特點。

A.數據結構化B.數據面向應用程序C.數據共享性高D.數據具有較高的獨立性

50.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

51.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的運行結果是()。

A.20,30,B.30,17C.15,30,D.20,15,

52.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

53.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

54.下列選項中,不屬于數據模型所描述的內容的是()

A.數據類型B.數據操作C.數據結構D.數據約束

55.以下程序的輸出結果是()main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

56.閱讀下面程序段,則執行后的結果為#inclide"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

57.以下程序的輸出結果是

main()

{intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

58.數據存儲和數據流都是______,僅僅是所處的狀態不同。

A.分析結果B.事件C.動作D.數據

59.計算機軟件一般包括應用軟件和____。

A.字處理軟件B.系統軟件C.服務性軟件D.操作系統

60.下面不屬于軟件設計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

四、選擇題(20題)61.

62.若函數調用時的實參為變量時,以下關于函數形參和實參的敘述中正確的是()。

A.函數的實參和其對應的形參共占同一存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數的形參和實參分別占用不同的存儲單元

63.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

程序運行后的輸出結果是()。

A.235B.0235C.02356D.2356

64.下面不屬于軟件設計階段任務的是()。

A.制訂軟件確認測試計劃B.數據庫設計C.軟件總體設計D.算法設計

65.

66.在數據庫管理系統的層次結構中,處于最上層的是()。

A.應用層B.語言翻譯處理層C.數據存取層D.數據存儲層

67.有以下程序

程序的運行結果是()。

A.1,2,3,4,5,6,7,8,9,0,

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,l,

D.0,1,2,3,4,5,6,7,8,9,

68.設有定義"doublea[10],*s=a;",以下能夠代表數組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

69.

70.有以下程序:

#include<stdio.h>

#defineS(x)4*(x)*x+1

main()

{intk=5,j=2;

printf("%d\n",S(k+j));

}

程序運行后的輸出結果是()。

A.197B.143C.33D.28

71.讀取二進制文件的函數調用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內存塊的首地址,代表讀入數據存放的地址

B.一個整型變量,代表待讀取的數據的字節數

C.一個文件指針,指向待讀取的文件

D.一個內存塊的字節數

72.

73.數據流圖中方框表示的是()。

A.數據流B.存儲文件C.控制流D.源,潭

74.以下程序運行后的輸出結果是()。

A.eelcomwB.weoclnleC.welcomeD.emoclew

75.有以下計算公式

若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是()。

76.

77.

78.有以下程序程序運行后的輸出結果是()。

A.程序錯無輸出結果B.31.5C.7.5D.14.0

79.數據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

80.有以下程序程序運行后的輸出結果是()。

A.1,2,3.4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:用冒泡法對6個字符串按由小到大的順序進行排序。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內容為****a*bc*def*g****,刪除后,字符串中的內容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

1.C根據賦值運算的類型轉換規則,先將double型的常量l.2轉換為int型,因為x的類型是int,則X的值為1;執行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉換為double型1.0,然后3.8相加得4.8,進行除法運算4.8/5.0結果為0.即變量y的值為0,d*Y的值也為0,故選C選項。

2.A++a與a++的區別是前者先自加再運算,后者是先運算后自加。

3.A二維數組t[][3]即t[3][3]={{9,8,7},{6,5,4},{3,2,1}}。執行循環for語句,當i=0時,t[2][0]=3;當i=1時,t[l][1]=5;當i=2時,t[0][2]=7;當i=3時,循環結束,即t[2][0]=3、t[1][1]=5、t[0][2]=7。故本題答案為A選項。

4.D數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要采用不同的存儲結構,用的存儲結構有順序和鏈式結構。用不同的存儲結構,其處理的效率是不同的。

5.A解析:對未給出初始值的整數數組元素,被默認初始化為零。

6.A本題中,fun函數第1次調用為fun(8,fun(5,6))。因為fun(5,6)的返回值為5,所以第2次調用為fun(8,5),即返回值為6。故本題答案為A選項。

7.D

8.AA。數據定義語言(DDL)是集中負責數據庫模式定義與數據庫對象定義的語言。數據操縱語言(DML)是指用來查詢、添加、修改和刪除數據庫中數的語句。數據控制語言(DCL)是用來設置或者更改數據為用戶或角色權限的語句。據此,本題正確答案為選項A。

9.A選項A中,if語句的語句塊“m--”后面少了分號,不合法,編譯會出錯。其他選項都是正確的。故本題答案為A選項。

10.DC語言的數值常量中不能夾帶空格,所以A選項錯誤。C語言中的變量都必須先定義再使用,變量的定義通常放在函數體的前部,也可以放在函數外部或復合語句的開頭,不能隨便放置,所以B選項錯誤。在C語言中,運算符兩側的運算數據類型可以不一致,且結果與精度較高的數據類型保持一致,所以C選項錯誤。故本題答案為D選項。

11.C

12.D在C語言中,數組元素的個數是確定的,不允許隨機變動,數組定義好后,它所能容納的元素的個數也就確定了,并且同一個數組中所有元素都是同一類型。

13.A當x為1時,執行case1,a自加等于1,因為case1后沒有break,接著執行case2,此時a的值為2,b自加為1,故選擇A選項。

14.D

15.C

16.B軟件設計包括軟件的結構設計、數據接口設計和過程設計。其中軟件結構設計主要包括系統由哪些子系統構成,以及這些子系統之間的關系是怎樣的,并將這些內容編寫成文檔;數據接口設計的任務是為每個子系統設計其與其他子系統間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統的操作知識就可以使用;過程設計是指系統結構部件轉換成軟件的過程描述。

17.C

18.C本題考查文件的操作,首先打開文件,進行寫操作,把“abc”寫入“myfile”文件,再打開“myfile.data"文件,輸入28,在鍵盤上接收字符,輸出并關閉文件。本題結果為abc28。

19.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。

20.B函數fun的功能是在a所指的具有n個元素的數組中查找最大值并返回。通過for循環比較,s始終指向最大值的那個元素。取指針的值,使用*P,因此比較使用*P和*s,又因為找最大值,當*s<*p時,修改指針s的指向。故本題答案為B選項。

21.00解析:“ch=getchat()”的功能是從終端讀入一個字符賦給變量ch,由于getchar()只能接收一個字符,所以輸入的字符1被賦給ch,即“'1'!='0'”,循環體不執行,直接退出while循環,所以循環體執行的次數為0。

22.1010解析:本題程序中定義了一個函數sub(),用來計算一個整數整除10的商和余數的和。在主函數中,首先用scanf()函數讀入一個十進制整數1234,然后對1234三次嵌套調用函數svb()。首先看最里層的調用,應該返回的值是123+4=127;然后中間一層調用應該返回的是12+7=19;所以最外層調用返回1+9=10。故最后輸出10。

23.*t*t解析:程序中,(a+n)代表字符串s最后一個字符后的,'\\0',根據題意,'\\0'所在位置應該賦值為字符串t的第一個字符,字符中t的其他字符根據循環,依次賦值到,所指字符串的尾部,所以[14]應填:*t。

24.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法.

25.調試調試

26.順序結構順序結構解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和switch語句)和循環結構(包括for語句、while語句、do…while語句)。

27.存儲結構數據結構包括3個方面,即數據的邏輯結構、數據的存儲結構及對數據的操作運算。

28.QTHRGQTHRG解析:strcmp(t,s)函數用來比較t和s所指字符串的大小,若t>s,則函數值大于0;若t=s,則函數值等于0:若t<s,則函數值小于0。strcpy(t,s)函數的功能是把字符數組s所指字符串的內容復制到字符數組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環,s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執行第二次循環.s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執行下列的語句,將字符數組s所指字符串的內容復制到字符數組t所指的存儲空間中,然后輸出字符數組t。

29.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數據。

30.1818解析:設循環隊列的容量為n。若rear>front,則循環隊列中的元素個數為rear-front;若rear<front,則循環隊列中的元素個數為n+(rear-from)。題中,front=16,rear=9,即rear>front,所以,循環隊列中的元素個數為m+(rear-front)=25+(9-16)=18。

31.n/2n/2解析:刪除一個元素,平均移動的元素個數為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數為n/2。

32.852852解析:循環前,變量y的值為9,其中的循環語句在y大于0情況下循環,每次循環后y的值減1。循環體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環因y為9,能被3整除,輸出8,y也變成8。又經兩次循環,y的值變為6,又讓y減1變成5,并輸出5;又經兩次循環,y的值變成3,讓y減1變成2,輸出2;再經兩次循環后,y的值變成0,結束循環。所以程序輸出852。

33.44解析:本題考查了靜態存儲類別的局部變量的特點。靜態存儲類別的局部變量在程序的整個生存周期內都存在,但作用域卻只局限于定義它的函數或局部范圍。當i=0時執行第一次for循環,k=f(2),a=c++,b++;因為賦值運算符的優先級高于逗號運算符,所以a=3,c=4;當i=1時執行第二次for循環,k=f(3),a=c++,b++;因為c為靜態局部變量所以保留著這一次執行的結果值4,所以a=4,c=5,所以函數f()返回a的值為4。

34.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數需要調用max()函數,在main()之前就需要聲明函數max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數,所以,填寫doublemax(或externdoublemax)。

35.j<Ia[i][j]=a[j][i]j<I\r\na[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉置,即讓數組中行上的元素變成對應列上的元素。即把對角線兩邊的元素對換,所以本題的第一個空白處應該填寫j<i,第二個空白處填寫交換對角線兩邊的元素的語句a[i][j]=a[j][i]。

36.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現過程是將相鄰兩個字符進行比較,如果當前字符小于下—個字符,則通過中間變量temp將字符兩兩交換,所以第一空應填:str[i],第二空應填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應填:'%s',str。

37.物理獨立性數據獨立性是數據與程序間的互不依賴性,即數據庫中數據獨立于應用程序而不依賴于應用程序。也就是說,數據的邏輯結構、存儲結構與存取方式的改變不會影響應用程序。數據獨立性一般分為物理獨立性與邏輯獨立性兩級。

38.a*b*c*da*b*c*d,解析:在insert()函數,因為題目要求輸入的字符串為abed,所以執行完“i=strlen(str);”后,i中存放的是字符串abcd的長度值4。所以接F來的while循環會循環4次,每次讓i減1,故4次循環中i的值依次為4、3、2、1。每次循環會執行兩條語句str[2*i]=str[i];str[2*i-1]='*',當i=4時為:str[8]=str[4];str[7=='*';。執行結果是將字符串abed末尾的結束符'\\0'復制到其下標值2倍的位置,并在其前1位插入—個'*'哼符。接下來i=3,執行str[6]=str[3];str[5]='*'。執行后會將字符串abcd最后一個字符,d復制到其下標值2倍的位置,并在其前1位插入一個'*'字符。依次類推,直到i=1,執行str[2]=str[1];str[1]='*',將字符tb,往后移動了1位,并在原位置插入'*'字符。所以,循環結束后,字符串str會變為a*b*c*d*。這就是程序的輸出結果。

39.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間。供隊列循環使用。可知,循環隊列應當是物理結構。

40.模塊化模塊化

41.D解析:不論p是指向什么類型的指針變量,都可以通過強制類型轉換的方法使之類型一致,強制類型轉換的格式為(數據類型*)。

42.AA)【解析】關系的并運算是指由結構相同的兩個關系合并,形成一個新的關系,新關系中包含兩個關系中的所有元組。

43.B解析:本題中選項B是錯誤的引用,*(a+i)+j只代表了a[i][j]的地址。

44.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確:在C語言中,函數體是從花括號{開始,到花括號}結束。但沒有規定花括號{和}只能作為函數體定界符,故選項B錯誤;選項C中前半句是正確的,C程序由一個或多個函數所組成,但不是所有的函數都由用戶自己命名,有些函數,比如主函數main()就不能由用戶來命名,故選C不正確;在C語言中明確規定每條語句以分號;結束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。

45.A解析:函數fun(char*s[],intn)的功能是對字符串數組的元素按照字符串的長度從小到大排序。在主函數中執行fun(ss,5)語句后,*ss[]={'xy','bcc','bbcc','aabcc','aaaacc'},ss[0],ss[4]的輸出結果為xy,aaaacc。

46.C解析:C語言規定的標識符只能由字母、數字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關鍵字作為標識符。選項C)中goto和int是關鍵字,b-a中'-'不是組成標識符的3種字符之一;選項D)中int是關鍵字,所以,均是不合法用戶標識符的選項是C)。

47.D解析:分布式數據庫系統具有數據分布性、邏輯整體性、位置透明性和復制透明性的特點,其數據也是分布的;但分布式數據庫系統中數據經常重復存儲,數據也并非必須重復存儲,主要視數據的分配模式而定。若分配模式是一對多的,即一個片段分配到多個場地存放,則是冗余的數據庫,否則是非冗余的數據庫。

48.A解析:(*f1)()=fun可以理解為將fun函數的函數名稱用(*f1)()來代替了,因此高調用fun時就可以用(*f1)()來代替,因此只有A是正確的。

49.B解析:數據的結構化是數據庫階段的重要特征之一。在數據庫階段,數據不再面向應用,而是面向整個系統,數據的共享性高、冗余小、易于擴展。由于數據庫三級模式間的兩級映像,所以數據具有較高的獨立性。

50.D解析:C語言規定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.

51.D解析:本題考查的是指針和結構的應用。首先定義的數組tt中有兩個成員,一個整型變量,一個結構指針。當i=1時,P指針指向結構數組的第一個元素,并輸出此元素的第一個成員x,即20;當i=2時,P指針指向結構數組的第二個元素的第一個成員,所以輸出15。

52.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(某字符的ASCII碼值)。選項C定義的初始值表達式中出現了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數形式的指數部分必須為整數,這里的2.5非法。

53.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

54.AA)【解析】數據模型描述的內容包含數據結構、數據操作和數據約束。

55.B

56.C

57.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數與自身按位與,結果仍為此數,不發生變化。

58.D解析:數據流圖有4種成分:源點或終點、處理、數據存儲和哦數據流。數據存儲是處于靜止狀態的數據,數據流是處于運動中的數據。

59.B

60.C解析:軟件設計遵循軟件工程的基本目標和原則,建立了適用于在軟件設計中應該遵循的基本原理和與軟件設計有關的概念。①抽象是一種思維工具,就是把事物本質的共同特性抽出來而不考慮其他細節。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數、子程序等。③信息隱蔽是指在一個模塊內包含的信息(過程或數據),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。因此,本題的正確答案是C。

61.C

62.D解析:在定義函數時函數名后面括弧中的變量名稱為“形式參數”(簡稱形參),在主調函數中調用一個函數時,函數名后面括弧中的參數(可以是一個表達式)稱為“實際參數”(簡稱實參)。C語言規定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。故本題應該選擇D。

63.B

\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環時,執行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環,執行case4:這個分支,結果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環,執行case3:這個分支,結果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環,執行case2:case4:這個分支,結果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環條件,因此循環結束。

\n

64.A軟件設計階段的主要任務包括丙個:一是進行軟件系統的可行性分析,確定軟件系統的建設是否值得,能否建成。二是進行軟件的系統分析,了解用戶的需求,定義應用功能,詳細估算開發成本和開發周期。

65.B

66.A在數據庫管理系統的層次結構中,應用層是直接面向終端客戶的,因此它是出于最上層得。

67.A函數調用中發生的數據傳遞是單向的,即只能把實參的值傳遞給形參。而不能把形參的值反向地傳遞給實參。因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化,所以數組C中的元素的值并沒有變化,故選擇A)。

68.B\n用帶下標的指針變量引用一維數組元素若有以下定義和語句:“int*P,s[10],i;P=s}”,且o≤i<10,可以用&.s[i]、s+i和p+i三種表達式來表示s[i]的地址。同時可以用s[i]、*(s+i)和*(p+i)三種表達式來表示數組元素s[i]。

\n

69.D

70.B\n此程序考查帶參數的宏定義,S(k+j)展開后即4*(k+j)*k+j+1,所以結果為l43,答案為B。

\n

71.Afread(void*buffer,sizet_size,sizet__count,FILE*stream);功能是從一個文件流中讀數據,讀取countl"元素,每個元素disize個字節,如果調用成功返回count。buffer:用于接收數據的內存地址,大小至少是size*count個字節;size:單個元素的大小,單位是字節;count:元素的個數,每個元素占size個字節;streaili:輸入流。故本題答案為A)。

72.A

73.D數據流圖是描述數據處理過程的工具,\n它從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的變化過程。數據流圖中的主要圖形元素有:圓形,表示加工;箭頭,表示數據流;雙杠,表示存儲文件;方框,表示源、潭。

74.D該程序中f函數的功能是交換兩個位置字符的值,f函數共調用3次,依次更改了字符串中l和o、e和m、w和e的值,因此更改后的字符串的值是emoclew。

75.C本題重點考查的知識點是:s叫()函數。s叫()函數的作用是計算平方根,要求輸出的參數x必須大于等于0。題目公式的要求是無論x大于等于0還是小于0,Y的值都為x絕對值的開方。選項c中調用了sqrt(x)函數,而沒有判斷X的正負,則Y=m-(x)會出錯。

76.C

77.B

78.A宏定義不是c語句,末尾不需要有分號。因此語句“printf(”%4.1f\n”。S(a+b));”展開后為“prinff(”%4.1tXn",3.5;+a+b}a+b;);”,所以程序會出現語法錯誤。

79.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統,對數據的存儲結構和存取方法進行設計,從而實現從邏輯結構到物理結構的轉換。從系統開發的角度來看,結構特性設計和行為特性-設計是數據庫應用系統所具有的兩個特性。結構特性的設計,設計各級數據庫模式(靜態特性):行為特性的設計,改變實體及其特性,決定數據庫系統的功能(動態特性)。

80.A本題考查的是結構體成員的引用。在主函數main中定義了一個整型變量i和一個結構體變量s。f函數中,定義了一個結構體類型的指針P,外層循環變量i表示數組的第i個元素,內層循環變量j表示數組的第i+1個元素,調用f函數,通過指針變量P來引用結構體成員。執行if語句,當P一>a[i]>P一>a[j]時進行互換,其作用就是從小到大行排序,最后將排序后的元素輸出:l,2,3,4,5,6,7,8,9,10,。

81.(1)錯誤:if(strcmp((pstr+i),(pstr+j))>o)

正確:if(strcmp(*(pstr+i),*(pstr+j))>0)

(2)錯誤:*(pstr+j)=*P

正確:*(pstr+j)=p

【解析】變量pstr表示的是字符串數組的首地址,pstr+i表示的是字符串首地址偏移量為i處的地址。程序中要比較的是字符,因此,“if(strcmp((pstr+i),(pstr+j))>0)”應改為“if(strcmp(*(pstr+i),*(pstr+j))>0)”;根據程序可知,要交換的是字符串的首地址而不是字符串的內容,因此,“*(pstr+j)=*p”應改為“*(pstr+j)=P”。

82.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通過P的移動來達\n\n\n\t到使P指向第一個不是*號的字符\n\n\n\tfor(;*p!=\0

;p++,str++)//把從第一個\n\n\n\t不是*號的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0

;//最后用\0作為字符串結束標志\n\n\n\t}\n\n\n\t【解析】題目中要求將字符串中的前導*號全部刪除首先將指針p移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結束符。\n2021年河南省商丘市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列程序的輸出的結果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

2.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運行后的輸出結果是()。A.A.b,bB.b,cC.a,bD.a,c

3.有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);}程序的運行結果是()。

A.357B.753C.369D.751

4.下列敘述中正確的是()。

A.一個邏輯數據結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構不影響數據處理的效率

D.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構影響數據處理的效率

5.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

6.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運行結果是()。

A.6B.3C.8D.12

7.在下面棧的基本運算中,不是加工型運算的是______。

A.初始化B.進棧C.退棧D.判棧空

8.數據庫管理系統中負責數據模式定義的語言是()。A.數據定義語言B.數據管理語言C.數據操縱語言D.數據控制語言

9.設有定義“intm=1,n=2;”,則以下if語句中,編譯時會產生錯誤信息的是()。

A.if(m>n)m--elsen--;

B.if(m=n){m++;n++;}

C.if(m<0&&n<0){}

D.if(m>0);elsem++;

10.以下關于C語言的敘述中正確的是()。

A.C語言的數值常量中夾帶空格不影響常量值的正確表示

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數據類型必須一致

D.C語言中的注釋不可以夾在變量名或關鍵字的中間

11.

12.下列說法正確的是()。

A.在C語言中,可以使用動態內存分配技術定義元素個數可變的數組

B.在c語言中,數組元素的個數可以不確定,允許隨機變動

C.在C語言中,數組元素的數據類型可以不一致

D.在C語言中,定義一個數組后.就確定了它所容納的元素的個數

13.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

14.

15.下面結構中最適于表示稀疏無向圖的是()。

A.鄰接矩陣B.逆鄰接表C.鄰接多重表D.十字鏈表

16.軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發過程

17.下述哪一條是順序存儲結構的優點()。

A.插入運算方便B.可方便地用于各種邏輯結構的存儲表示C.存儲密度大D.刪除運算方便

18.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen("myfile,dat","");{puts("abe",ip);fclose(fp);fp=fopen("myfile.dat","a*");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%S",str);puts(str);fclose(fp);}程序運行后的輸出結果是()。A.abcB.28cC.abc28D.內類型不一致而出錯

19.在位運算中,操作數左移一位,其結果相當于A.A.操作數乘以2

B.操作數除以2

C.操作數除以4

D.操作數乘以4

20.函數fun的功能是在a所指的具有n個元素的數組中查找最大值并返回給調用函數,但函數不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應填入的選項是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

二、2.填空題(20題)21.當執行以下程序時,輸入1234567890<回車>,則其中while循環體將執行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

22.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

printf("%d\n",y);

}

若運行時輸入:1234<回車>,程序的輸出結果是______。

23.以下函數sstrcat的功能是實現字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:,所指字符串為abed,t所指字符串為efgh,調用函數sstrcat后s所指字符串為abcdefgh。請填空。

#inehde<stdio.h>

#include<string.h>

voidsstuat(char*9,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

24.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。

25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發現錯誤的位置并改正錯誤。

26.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環結構。

27.數據結構包括數據的邏輯結構、數據的【】以及對數據的操作運算。

28.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

for(i=0;i<2;i++)

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

printf("%s\n",t);

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。

29.常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數據。

30.在一個容量為25的循環隊列中,若頭指針front=16,尾指針rear=9,則該循環隊列中共有上【】個元素。

31.對于長度為n的順序存儲的線性表,當隨機插入和刪除一個元素時,需平均移動元素的個數為【】。

32.以下程序的輸出結果是【】。

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

33.下列程序執行輸出的結果是【】。

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

for(i=0;i<2;i++)

k=f(a++);

printf("%d\n",k);}

34.請在以下程序第一行的下劃線處填寫適當內容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

35.下面rotme函數的功能是:將n行n列的矩陣A轉置為A'。例如:

請填空。

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for(i=0;i<N;i++)

for(j=0;【】;j++)

{t=a[i][j];

【】;

a[j][i]=t;

}

}

36.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

for(i=0;i<n;i++)

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

37.當數據的物理結構(存儲結構)改變時,不影響數據庫的邏輯結構,從而不致引起應用程序的變化,這是指數據的【】。

38.當運行以下程序時,輸入abed,程序的輸出結果是:【】。

insert(charstr[])

{inti

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*-1]='*';i--;}

printf("%s\n",str);

}

main()

{charstr[40];

scanf("%s",sB);insert(str);

}

39.數據結構分為邏輯結構和存儲結構,循環隊列屬于______結構。

40.結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。

三、1.選擇題(20題)41.若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態存儲單元int*pp=______malloc(sizeof(int));則應填入______。

A.intB.int*C.(*int)D.(int*)

42.對關系S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()

A.并運算B.交運算C.差運算D.積運算

43.若有定義:inta[4][10];,則以下選項中對數組元素a[i][j]引用錯誤的是______。(0<=i<4,0<=j<10)

A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)

44.以下敘述中正確的是()。

A.C程序中注釋部分可以出現在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數體的定界符

C.構成C程序的基本單位是函數,所有函數名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

45.有以下程序#include<stdio.h>#include<string.h>voidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i];s[j];s[j]=t;}}main(){char*ss[]={"bcc

A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

46.下面四個選項中,均是不合法的用戶標識符的選項是()。

A.AP_0doB.floatla0_AC.b-agotointD._123tempint

47.分布式數據庫系統不具有的特點是()。A.A.數據分布性和邏輯整體性B.位置透明性和復制透明性C.分布性D.數據冗余

48.有以下程序中若有如下說明和定義語句;charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;…}以下選項中對函數fun的正確調用語句是______。

A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

49.數據管理技術隨著計算機技術的發展而發展。數據庫階段具有許多特點,但下面列出的特點中,______不是數據庫階段的特點。

A.數據結構化B.數據面向應用程序C.數據共享性高D.數據具有較高的獨立性

50.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

51.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的運行結果是()。

A.20,30,B.30,17C.15,30,D.20,15,

52.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

53.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

54.下列選項中,不屬于數據模型所描述的內容的是()

A.數據類型B.數據操作C.數據結構D.數據約束

55.以下程序的輸出結果是()main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

56.閱讀下面程序段,則執行后的結果為#inclide"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

57.以下程序的輸出結果是

main()

{intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

58.數據存儲和數據流都是______,僅僅是所處的狀態不同。

A.分析結果B.事件C.動作D.數據

59.計算機軟件一般包括應用軟件和____。

A.字處理軟件B.系統軟件C.服務性軟件D.操作系統

60.下面不屬于軟件設計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

四、選擇題(20題)61.

62.若函數調用時的實參為變量時,以下關于函數形參和實參的敘述中正確的是()。

A.函數的實參和其對應的形參共占同一存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數的形參和實參分別占用不同的存儲單元

63.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

程序運行后的輸出結果是()。

A.235B.0235C.02356D.2356

64.下面不屬于軟件設計階段任務的是()。

A.制訂軟件確認測試計劃B.數據庫設計C.軟件總體設計D.算法設計

65.

66.在數據庫管理系統的層次結構中,處于最上層的是()。

A.應用層B.語言翻譯處理層C.數據存取層D.數據存儲層

67.有以下程序

程序的運行結果是()。

A.1,2,3,4,5,6,7,8,9,0,

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,l,

D.0,1,2,3,4,5,6,7,8,9,

68.設有定義"doublea[10],*s=a;",以下能夠代表數組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

69.

70.有以下程序:

#include<stdio.h>

#defineS(x)4*(x)*x+1

main()

{intk=5,j=2;

printf("%d\n",S(k+j));

}

程序運行后的輸出結果是()。

A.197B.143C.33D.28

71.讀取二進制文件的函數調用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內存塊的首地址,代表讀入數據存放的地址

B.一個整型變量,代表待讀取的數據的字節數

C.一個文件指針,指向待讀取的文件

D.一個內存塊的字節數

72.

73.數據流圖中方框表示的是()。

A.數據流B.存儲文件C.控制流D.源,潭

74.以下程序運行后的輸出結果是()。

A.eelcomwB.weoclnleC.welcomeD.emoclew

75.有以下計算公式

若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是()。

76.

77.

78.有以下程序程序運行后的輸出結果是()。

A.程序錯無輸出結果B.31.5C.7.5D.14.0

79.數據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

80.有以下程序程序運行后的輸出結果是()。

A.1,2,3.4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:用冒泡法對6個字符串按由小到大的順序進行排序。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數proc,它的功能是:將字符串中的前導*號全部刪除,中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論