2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下有關(guān)宏替換的敘述不正確的是()。

A.雙引號(hào)中出現(xiàn)的宏名不替換B.使用宏定義可以嵌套C.宏定義儀儀是符號(hào)替換D.宏名必須用大寫字母表示

2.下列程序的輸出結(jié)果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a

3.考慮下圖中的程序段,①號(hào)語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'

4.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

5.設(shè)有定義“doublea;chard;floatb;”,若想把1.2賦給變量a、字符‘k’賦給變量d、3.4賦給變量b,程序運(yùn)行時(shí)通過鍵盤輸入1.2k3.4并按<Enter>鍵,則以下正確的讀入語句是()。A.scanf(“%lf%c%f”,&a,&d,&b);

B.scanf(“%lf%c%f”,&a,&d,&b);

C.scanf(“%f%c%f”,&a,&d,&b);

D.scanf(“%f%c%f”,&a,&d,&b);

6.

7.下面關(guān)于線性表的敘述中,錯(cuò)誤的是哪一個(gè)()。

A.線性表采用順序存儲(chǔ),必須占用一片連續(xù)的存儲(chǔ)單元

B.線性表采用順序存儲(chǔ),便于進(jìn)行插入和刪除操作

C.線性表采用鏈?zhǔn)酱鎯?chǔ),不必占用一片連續(xù)的存儲(chǔ)單元

D.線性表采用鏈?zhǔn)酱鎯?chǔ),便于進(jìn)行插入和刪除操作

8.以下敘述中錯(cuò)誤的是

A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行

B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束

C.#defineMAX是合法的宏定義命令行

D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的

9.設(shè)n、m為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),n在m之前的條件是_____________。

A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫

10.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.1256B.5634C.5612D.3456

11.設(shè)有定義:“inta=1,b=2,C=3;”,以下語句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>b)c=a,a=b,b=C;

B.if(a>b){c=a,a=b,b=C;}

C.if(a>b)c=a;a=b;b=C;

D.if(a>b){c=a;a=b.b=C;)

12.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

A.先進(jìn)先出B.先進(jìn)后出

13.一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的輸出序列是()。

A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,1

14.設(shè)主串T='aabaababaabaa',子串P:'abab',則簡(jiǎn)單模式匹配算法中直至匹配成功,單個(gè)字符比較的次數(shù)為()。

A.12B.13C.14D.15

15.下列運(yùn)算符中優(yōu)先級(jí)最低的算符是()。

A.||B.!=C.<;=D.十

16.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}

A.66B.98C.bD.B

17.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是()。A.p->next=s;s->next=p->next;

B.s->next=p->next;p->next=s;

C.p->next=s;p->next=s->next;

D.p->next=s->next;p->next=s;

18.若有定義"int(*pt)[3];",則下列說法正確的是()。

A.定義了基類型為int的三個(gè)指針變量

B.定義了基類型為int的具有三個(gè)元素的指針數(shù)組pt

C.定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組

D.定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組

19.以下關(guān)于return語句的敘述中正確的是()。

A.一個(gè)自定義函數(shù)中必須有一條return語句

B.一個(gè)白定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

20.線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。

A.一對(duì)多關(guān)系B.多對(duì)多關(guān)系C.多對(duì)一關(guān)系D.一對(duì)一關(guān)系

二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

22.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

23.下列程序段的輸出結(jié)果是【】。

main()

{charb[]="Hello,you";

b[5]=0;

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

}

24.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

25.以下程序的輸出結(jié)果是______。

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

26.現(xiàn)有兩個(gè)C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入Thank!,則輸出結(jié)果是【】。

27.數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為______模式、內(nèi)部級(jí)模式與外部級(jí)模式。

28.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

29.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p/13所指向的數(shù)組元素的地址為______。

30.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

31.以下程序中給指針p分配三個(gè)double型動(dòng)態(tài)內(nèi)存單元,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

32.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("\n%2d,%2.1f,%2.11f",a,b,C);

}

33.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個(gè)數(shù)。累加的和放入x所指的存儲(chǔ)單元中。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k<n;k++)r=【】;

【】=r;

}

34.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

printf("%d\n",p+2);

}

執(zhí)行后輸出結(jié)果是【】。

35.測(cè)試用例包括輸入值集和【】值集。

36.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

37.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

scanf("%lf%lf",&x,&y);

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

}

doublemax(doublea,doubleb)

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

38.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,B);

}

39.以下程序中函數(shù)f的功能是在數(shù)組x的n個(gè)數(shù)(假定n個(gè)數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,把最大的數(shù)與最后一個(gè)數(shù)對(duì)換。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

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

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

40.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

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

}

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

}

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

三、1.選擇題(20題)41.下列不合法的用戶標(biāo)識(shí)符是()。

A.j2_KEYB.DoubleC.4dD._8_

42.以下選項(xiàng)中合法的用戶標(biāo)識(shí)符是A.longB._2TestC.3DmaxD.A.dat

43.下列敘述中錯(cuò)誤的是()。

A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別

D.在C語言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量

44.下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

45.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.TRUED.FALSE

46.下列函數(shù)定義中,會(huì)出現(xiàn)編譯錯(cuò)誤的是______。

A.max(intx,inty,int*z){*z=x>y?x:y;}z=x>y?x:y;

B.intmax(intx,y){intz;returnz;}

C.max(intx,inty){intz;z=x>y?x:y;return(z);}

D.intmax(intx,inty){returnx>y?x:y;}

47.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式x/y×z的C語言表達(dá)式是()

A.x/y*z)B.x*(1/(y*z))C.x/y*1/z)D.x/y/z

48.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

49.以下四個(gè)選項(xiàng),不能看作一條語句的是()。

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

50.設(shè)有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}

A.789B.7911C.71013D.777

51.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

52.下列選項(xiàng)中,不屬于數(shù)據(jù)庫(kù)管理的是()

A.數(shù)據(jù)庫(kù)的建立B.數(shù)據(jù)庫(kù)的調(diào)整C.數(shù)據(jù)庫(kù)的監(jiān)控D.數(shù)據(jù)庫(kù)的校對(duì)

53.下列描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲(chǔ)空間C.可隨機(jī)訪問D.需另外開辟空間來保存元素之間的關(guān)系

54.以下程序的輸出結(jié)果是

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*(z++));}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

55.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對(duì)使用

D.在switch語句中,不一定使用break語句

56.以下能正確定義數(shù)組并正確賦初值的語句是______。

A.intN=5,b[N=[N];

B.inta[1][2]={{1},{3}};

C.intc[2][]={{1,2},{3,4}};

D.intd[3][2]={{1,2},{34}};

57.對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是______。

A.程序應(yīng)簡(jiǎn)單、清晰、可讀性好B.符號(hào)名的命名要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

58.下列敘述中不正確的是

A.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

B.數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

C.數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿足用戶要求,性能良好的數(shù)據(jù)庫(kù)

D.數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持

59.若要定義a為3×4的二維數(shù)組,正確的定義語句是()

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

60.若已定義

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中則對(duì)a數(shù)組元素不正確的引用是

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

四、選擇題(20題)61.有以下程序:

fun(inta[],intm,intn)

{inti;

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

a[i+1]=a[i]+3;

returna[i+1];

}

voidmain()

{

inti,a[6]={2,4,6,8,10,12};

fun(a,2,5);

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

printf("%d",a[i]);

}

程序運(yùn)行后輸出的結(jié)果是()。

A.24691315B.24691215C.249121518D.249121415

62.若intk=8;,則執(zhí)行下列程序后,變量k的正確結(jié)果是

main()

{intk=8;

switch(k)

{case8:k+=1;

case10:k+=1;

case11:k+=1;break;

default:k+=1;

}

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

}

A.12B.11

C.10D.9

63.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

64.

65.若有定義:char*st=”howareyou”;,下列程序段中正確的是()。

A.

B.

C.

D.

66.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.軟件需求規(guī)格說明書

67.

68.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表=迭式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

69.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是______。

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

70.

71.

72.

若有定義和語句:

int**pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);

則輸出結(jié)果是()。

A.20,10B.20,20C.10,20D.10,10

73.

74.最常用的一種基本數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型,對(duì)于它的表示應(yīng)采用

A.樹B.網(wǎng)絡(luò)C.圖D.二維表

75.

若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

76.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

77.

78.

79.

80.設(shè)有以下函數(shù):

voidfun(intn,char*s){…}

則下面對(duì)函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用下面的公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止。π/4≈1-1/3+1/5-1/7+…例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個(gè)數(shù)。

例如,若傳給m的值為70,則程序輸出:

7111421222833354244495556636670

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語句。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidproc(intm,int*a,int*n)

{}

voidmain

{

intarr[N],n,k;

system("CLS");

proc(70,arr,&n);

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

if((k+1)%20==0)//每行輸出20個(gè)數(shù)

{printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}

參考答案

1.D解析:本題考查宏替換的規(guī)則。宏替換分為簡(jiǎn)單的字符替換和帶參數(shù)的宏替換兩類。使用宏時(shí)應(yīng)注意以下幾點(diǎn):①定義僅僅是符號(hào)替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識(shí)符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號(hào)中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。

2.C本題考查函數(shù)的調(diào)用及參數(shù)傳遞,當(dāng)執(zhí)行函數(shù)point時(shí),剛開始指針P指向“a”,經(jīng)過+3,指針p指向“f”,所以最后的輸出結(jié)果是f。

3.D

4.D此題考查的是基本的循環(huán),答案為D。

5.B變量a是double類型,輸入格式符為%lf;變量d是char類型,輸入格式符為%c;變量b是float類型,輸入格式符為%f,選項(xiàng)C、D錯(cuò)誤。由于輸入的數(shù)據(jù)之間使用空格間隔,因此scanf函數(shù)中的格式控制字符串中,格式字符之間也要使用空格。故本題答案為B選項(xiàng)。

6.A

7.B

8.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預(yù)處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結(jié)束,以區(qū)別于C語句、定義和說明語句。選項(xiàng)C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預(yù)處理是在編譯程序?qū)源程序進(jìn)行編譯前執(zhí)行的.當(dāng)然也在程序執(zhí)行之前執(zhí)行,因此選項(xiàng)D是錯(cuò)誤的。

9.C

10.BFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是5634。

11.C本題判斷結(jié)果。選項(xiàng)A中,如果(a>b),則執(zhí)行“c=a,a=b,b=c”這個(gè)語句(注意分號(hào)的位置,如果條件成立,將會(huì)執(zhí)行第一個(gè)分號(hào)前的語句),顯然if不成立,則a,b,C原樣輸出。選項(xiàng)B和選項(xiàng)D是同理,而選項(xiàng)C因?yàn)闂l件不成立,則不執(zhí)行第一條語句“c=a”,接著執(zhí)行“a=b”,將b的值賦給a,a的值為2;“b=C”,b的值為3,C的值原樣輸出,結(jié)果為2,3,3。

12.A

13.B

14.A

15.AC語言中規(guī)定運(yùn)算符的優(yōu)先順序:一元算術(shù)運(yùn)算符一>二元算術(shù)運(yùn)算符一>關(guān)系運(yùn)算符一>邏輯運(yùn)算符一>賦值運(yùn)算符,A項(xiàng)中為邏輯運(yùn)算符,B項(xiàng)和c項(xiàng)都為關(guān)系運(yùn)算符,D項(xiàng)為一元運(yùn)算符。因此最低的是A項(xiàng)。

16.C解析:位運(yùn)算符“|”的作用是按位或,即兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中只要有一個(gè)為1,該位的結(jié)果值為1。最后以字符型輸出,98對(duì)應(yīng)的字符“b”

17.B

18.D\n數(shù)組指針是指向數(shù)組的一個(gè)指針,int(*pt)[3]表示一個(gè)指向3個(gè)int元素的數(shù)組的一個(gè)指針。

\n

19.Breturn語句又稱為返回語句。該語句的格式如下:“return;”和“return(<表達(dá)式>);”。其中,return是關(guān)鍵字。該語句有兩種格式:不帶返回值格式和帶返回值格式。該語句用在被調(diào)用函數(shù)中,在被調(diào)用函數(shù)中執(zhí)行到該語句時(shí),將結(jié)束對(duì)被調(diào)用函數(shù)的執(zhí)行,并把控制權(quán)返回給調(diào)用函數(shù),繼續(xù)執(zhí)行調(diào)用函數(shù)后邊的語句。在帶有返回值的情況下,將return語句所帶的表達(dá)武的值返回給調(diào)用函數(shù),作為被調(diào)用函數(shù)的值。在被調(diào)用函數(shù)中,可以用return語句,也可以不用return語句。如果要求被調(diào)用函數(shù)有返回值,則一定要用return語句,采用return(<表達(dá)式>);格式。如果被調(diào)用函數(shù)不需要返回值,并且當(dāng)被調(diào)用函數(shù)的所有語句執(zhí)行完后進(jìn)行返回,則被調(diào)用函數(shù)可以不用return語句。

20.D

21.3123,1,2解析:分析程序,第一個(gè)if句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時(shí)a=2,b=1。第二個(gè)if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時(shí)a=3,c=2。

22.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點(diǎn)是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應(yīng)該是'w'(只寫)?;蛘呤亲x寫“r+”或“w+”。

23.HelloHello解析:字符串中,數(shù)值0或符號(hào)'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。

24.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

25.246

26.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。

27.概念(或概念級(jí))概念(或概念級(jí))

28.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

29.252H252H解析:要解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算時(shí),數(shù)字'1'不是十進(jìn)制數(shù)的'1',而是指'1'個(gè)存儲(chǔ)單元長(zhǎng)度。1個(gè)存儲(chǔ)單元長(zhǎng)度占存儲(chǔ)空間的多少,應(yīng)該視具體情況而定,如果存儲(chǔ)單元的基類型是int型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié);如果存儲(chǔ)單元基類型是float型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以曠13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

30.軟件開發(fā)

31.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識(shí)點(diǎn)是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請(qǐng)n個(gè)字符的存儲(chǔ)單元,并返回該存儲(chǔ)區(qū)的首地址,實(shí)際調(diào)用的時(shí)候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價(jià)的表達(dá)式。

32.1234123.512345.51234,123.5,12345.5解析:在primf()函數(shù)的格式控制符中:'%2d'表示輸出一個(gè)有符號(hào)整數(shù),如果輸出長(zhǎng)度小于2,則左端補(bǔ)以空格,否則按實(shí)際長(zhǎng)度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個(gè)單精度實(shí)數(shù),只輸出小數(shù)點(diǎn)后1位,后面若有小數(shù)則四舍五入,如果輸出長(zhǎng)度小于2,則左端補(bǔ)以空格,否則按實(shí)際長(zhǎng)度輸出。所以本題中的b四舍五入到小數(shù)點(diǎn)后1位再輸出為123.5;'%2.11f'除了表示輸出一個(gè)雙精度實(shí)數(shù)外,其余參數(shù)和'%2.1f'一樣。所以本題中的c四舍五入到小數(shù)點(diǎn)后1位再輸出為12345.5。故輸出結(jié)果是:1234,123.5,12345.5。

33.r+b[k]或*(b+k)+r*xr+b[k]或*(b+k)+r\r\n*x解析:r是累加的和,k是數(shù)組b的下標(biāo),因此有r=r+b[k];由于x是傳地址調(diào)用,*x是其指向存儲(chǔ)單元的內(nèi)容,要把累加的和放入x所指的單元,因此有*x=r。

34.11解析:首先計(jì)算if語句后面的表達(dá)式,根據(jù)運(yùn)算符的優(yōu)先級(jí)可知,先算“a!=0”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。

35.輸出輸出解析:測(cè)試用例曲測(cè)試輸入數(shù)據(jù)(輸入值集)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。

36.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。

37.doublemaxdoublemax解析:本題考查函數(shù)的聲明。C語言中函數(shù)聲明的一般形式為:

(1)函數(shù)類型函數(shù)名(參數(shù)類型1,參數(shù)類型2,…)

(2)函數(shù)類型函數(shù)名(參數(shù)類型1參數(shù)名1,參數(shù)類型2參數(shù)名2,…)

題目中函數(shù)類型是double。函數(shù)名是max。故答案是doublemax。

38.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個(gè)switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個(gè)復(fù)合switch語句:這時(shí)執(zhí)行第二個(gè)switch語句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個(gè)switch語句,則整個(gè)case1的復(fù)合語句執(zhí)行完畢,由于在這個(gè)case1的后面沒有break語句使其退出第一個(gè)switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。

39.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個(gè)比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個(gè)元素x[n-1]交換位置,再將最小值x[p1]和第一個(gè)元素(x[0])進(jìn)行交換,所以空白處應(yīng)該填入x[0]。

40.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組,所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。

本題中,t[10]='CDEF'.第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG”,if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。

41.C解析:在C語言程序中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須是字母或下劃線。

42.B解析:本題考查C語言標(biāo)識(shí)符的命名.在C語言中,合法的標(biāo)識(shí)符由字母,數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標(biāo)識(shí)符,故選頃A錯(cuò)誤.3Draax開頭的第一個(gè)為數(shù)字,而C語言規(guī)定,第一個(gè)字符必須為字母或者下劃線,故選項(xiàng)C錯(cuò)誤;A.dat中的字符“.”不符合C語言中用戶標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成的規(guī)定,故選項(xiàng)D錯(cuò)誤.只有迭項(xiàng)B正確。

43.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。

44.C解析:表達(dá)式“x+=-z---y”等價(jià)于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

45.B解析:本題考查C語言3個(gè)知識(shí)點(diǎn):①將一個(gè)字符賦給一個(gè)字符變量時(shí),并不是將該字符本身存儲(chǔ)到內(nèi)存中,而是將該字符對(duì)應(yīng)的ASCII碼存儲(chǔ)到內(nèi)存單元中;②大寫字母的ASCII碼值小于其對(duì)應(yīng)小寫字母的ASCII碼值;③只要邏輯與運(yùn)算符&&的兩個(gè)運(yùn)算對(duì)象都為非零,返回值就是1。

46.B解析:在C語言中,不可以在函數(shù)的參數(shù)聲明列表中用一個(gè)類型名指定多個(gè)參數(shù)。故選項(xiàng)B是錯(cuò)誤的。其正確的表示方式應(yīng)為:

intmax(intx,inty){…}

intmax(:1

intx,y;

{…)

47.A

48.D解析:要正確計(jì)算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項(xiàng)A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計(jì)算f=n!=O,所以選項(xiàng)A)不正確。在選項(xiàng)B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B)不正確。在選項(xiàng)C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)C)不正確。在選項(xiàng)D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計(jì)算f=n!,所以選項(xiàng)D)正確。

49.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號(hào)將多條語句括起來。選項(xiàng)D)中沒有將兩條語句括起來,不能看成一條語句。

50.A解析:本題考查靜態(tài)變量的問題。函數(shù)f中c是靜態(tài)變量存放在靜態(tài)存儲(chǔ)區(qū),在程序的整個(gè)運(yùn)行期間都不釋放占據(jù)的存儲(chǔ)單元。函數(shù)f被調(diào)用3次,調(diào)用過程如下。

第1次調(diào)用;a=2、b=0、c=3,執(zhí)行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7

第2次調(diào)用:a=2、b=0、c=4.執(zhí)行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8

第3次調(diào)用:a=2、b=0、c=5,執(zhí)行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9

所以輸出結(jié)果為選項(xiàng)A。

51.A解析:第一個(gè)判斷值為真,過渡到下一個(gè)判斷,第二個(gè)判斷為真,過渡到第三個(gè)判斷……,如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為-1,所以,無論前期如何變化,最后的x值依然為-1。

52.DD)【解析】數(shù)據(jù)庫(kù)管理一般包括:數(shù)據(jù)庫(kù)的建立、數(shù)據(jù)庫(kù)的調(diào)整、數(shù)據(jù)庫(kù)的重組、數(shù)據(jù)庫(kù)的安全性控制與完整性控制、數(shù)據(jù)庫(kù)的故障恢復(fù)和數(shù)據(jù)庫(kù)的監(jiān)控。

53.D解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。

54.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達(dá)到修改實(shí)參變量值的目的,這是此題主要說明的問題。另外,應(yīng)注意表達(dá)式\ue008*(z++)\ue009的值是*z,其后的z++在程序中無實(shí)際作用。函數(shù)調(diào)用時(shí),由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時(shí),*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項(xiàng)B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。

55.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項(xiàng)A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會(huì)一直執(zhí)行到switch的最后一條語句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對(duì)使用會(huì)讓所有case分支互不重疊條理明確,但不配對(duì)使用在C語言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。

56.D解析:本題考查二維數(shù)組的定義。不能對(duì)數(shù)組進(jìn)行動(dòng)態(tài)定義,選項(xiàng)A錯(cuò)誤;選項(xiàng)C省略第二維的長(zhǎng)度;選項(xiàng)B中初值的行數(shù)超過數(shù)組第一維的長(zhǎng)度。

57.A解析:要形成良好的程序設(shè)計(jì)風(fēng)格,主要應(yīng)注重和考慮下述一些因素:符號(hào)名的命名應(yīng)具有一定的實(shí)際含義,以便于對(duì)程序功能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應(yīng)優(yōu)先考慮清晰性,除非對(duì)效率有特殊要求,程序編寫要做到清晰第一,效率第二。

58.B解析:B選項(xiàng)錯(cuò)誤,原因是,數(shù)據(jù)庫(kù)應(yīng)該具有物理獨(dú)立性和邏輯獨(dú)立性,改變其一而不影響另一個(gè)。

59.B

60.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[p-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。

61.B函數(shù)的功能是將數(shù)組的某個(gè)區(qū)域內(nèi)的元素加3,賦給后一個(gè)元素,然后返回;題目是從a[2]到a[5]調(diào)用函數(shù),a[2]=6,所以a[3]=6+3=9,a[4]=9+3=12,a[5]=12+3=15,所以結(jié)果為B

62.B在本題中,程序的作用是通過switch語句改變已經(jīng)被賦初值的變量k的值。程序中首先將變量k賦初值為8,然后使用switch選擇結(jié)構(gòu)。由于k的值為8,在switch結(jié)構(gòu)中找到與之對(duì)應(yīng)的塊case8執(zhí)行,完成一次k加1的操作,此時(shí)變量k的值變?yōu)?,由于沒有break語句,程序接著往下執(zhí)行,執(zhí)行case10程序塊,再完成一次k加1的操作,此時(shí)k的值為10,又由于沒有break語句,程序接著往下執(zhí)行,執(zhí)行case11,再完成一次k加1的操作,此時(shí)k的值為11,程序碰到break語句,跳出switch結(jié)構(gòu)。然后執(zhí)行輸出語句,輸出的結(jié)果為11。

63.D

\n本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達(dá)式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負(fù)奇數(shù),則一定會(huì)使t==n成立,故退出do-while循環(huán)。

\n

64.A

65.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對(duì)字符數(shù)組賦值,如

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)其中,需要注意的是,字符數(shù)組l的長(zhǎng)度不應(yīng)小于字符串2的長(zhǎng)度,”字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),”字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

66.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審四個(gè)方面。所以選擇D。

67.B

68.Dif語句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。所以D選項(xiàng)正確。

69.C解析:位與運(yùn)算是將兩個(gè)運(yùn)算分量看作兩個(gè)二進(jìn)制數(shù),然后對(duì)兩個(gè)二進(jìn)制數(shù)的相應(yīng)位進(jìn)行與運(yùn)算,若同時(shí)為1則結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。因此,當(dāng)兩個(gè)運(yùn)算分量相同時(shí),它們的相應(yīng)位肯定也相同,即不同為1就同為0。所以得到的結(jié)果和運(yùn)算分量也相同。所以,4個(gè)選項(xiàng)中選項(xiàng)C)符合題意。

70.C

71.B

72.D

\n本題考查指針變量的賦值。**PP是定義一個(gè)指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。

\n

73.C

74.D關(guān)系數(shù)據(jù)模型是以關(guān)系數(shù)學(xué)理論為基礎(chǔ)的,用二維表結(jié)構(gòu)來表示實(shí)體以及實(shí)體之間聯(lián)系的模型稱為關(guān)系模型。在關(guān)系模型中把數(shù)據(jù)看成是二維表中的元素,操作的對(duì)象和結(jié)果都是二維表,一張二維表就是一個(gè)關(guān)系。表的每一行代表一個(gè)元組,每一列稱為一個(gè)屬性。

75.C

\n從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

\n

76.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

77.C

78.B

79.D

80.A\n函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時(shí),直接將函數(shù)指針指向函數(shù)名就行了。所以選項(xiàng)A正確。

\n

81.82.\n\tvoidproc(intm,int*a,int*n)

\n{

\ninti,j=0;

\nfor(i=1;i<=m;i++)//進(jìn)行m次循環(huán)

\nif(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)

\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中

\n*n=j;//返回這些數(shù)的個(gè)數(shù)

\n}

\n【解析】本題需要先判斷1~m每一個(gè)整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個(gè)數(shù)通過形參n返回主函數(shù)。\n2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下有關(guān)宏替換的敘述不正確的是()。

A.雙引號(hào)中出現(xiàn)的宏名不替換B.使用宏定義可以嵌套C.宏定義儀儀是符號(hào)替換D.宏名必須用大寫字母表示

2.下列程序的輸出結(jié)果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a

3.考慮下圖中的程序段,①號(hào)語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'

4.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

5.設(shè)有定義“doublea;chard;floatb;”,若想把1.2賦給變量a、字符‘k’賦給變量d、3.4賦給變量b,程序運(yùn)行時(shí)通過鍵盤輸入1.2k3.4并按<Enter>鍵,則以下正確的讀入語句是()。A.scanf(“%lf%c%f”,&a,&d,&b);

B.scanf(“%lf%c%f”,&a,&d,&b);

C.scanf(“%f%c%f”,&a,&d,&b);

D.scanf(“%f%c%f”,&a,&d,&b);

6.

7.下面關(guān)于線性表的敘述中,錯(cuò)誤的是哪一個(gè)()。

A.線性表采用順序存儲(chǔ),必須占用一片連續(xù)的存儲(chǔ)單元

B.線性表采用順序存儲(chǔ),便于進(jìn)行插入和刪除操作

C.線性表采用鏈?zhǔn)酱鎯?chǔ),不必占用一片連續(xù)的存儲(chǔ)單元

D.線性表采用鏈?zhǔn)酱鎯?chǔ),便于進(jìn)行插入和刪除操作

8.以下敘述中錯(cuò)誤的是

A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行

B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束

C.#defineMAX是合法的宏定義命令行

D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的

9.設(shè)n、m為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),n在m之前的條件是_____________。

A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫

10.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.1256B.5634C.5612D.3456

11.設(shè)有定義:“inta=1,b=2,C=3;”,以下語句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>b)c=a,a=b,b=C;

B.if(a>b){c=a,a=b,b=C;}

C.if(a>b)c=a;a=b;b=C;

D.if(a>b){c=a;a=b.b=C;)

12.棧的特點(diǎn)是B,隊(duì)列的特點(diǎn)是()。

A.先進(jìn)先出B.先進(jìn)后出

13.一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的輸出序列是()。

A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,1

14.設(shè)主串T='aabaababaabaa',子串P:'abab',則簡(jiǎn)單模式匹配算法中直至匹配成功,單個(gè)字符比較的次數(shù)為()。

A.12B.13C.14D.15

15.下列運(yùn)算符中優(yōu)先級(jí)最低的算符是()。

A.||B.!=C.<;=D.十

16.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}

A.66B.98C.bD.B

17.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是()。A.p->next=s;s->next=p->next;

B.s->next=p->next;p->next=s;

C.p->next=s;p->next=s->next;

D.p->next=s->next;p->next=s;

18.若有定義"int(*pt)[3];",則下列說法正確的是()。

A.定義了基類型為int的三個(gè)指針變量

B.定義了基類型為int的具有三個(gè)元素的指針數(shù)組pt

C.定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組

D.定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組

19.以下關(guān)于return語句的敘述中正確的是()。

A.一個(gè)自定義函數(shù)中必須有一條return語句

B.一個(gè)白定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

20.線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。

A.一對(duì)多關(guān)系B.多對(duì)多關(guān)系C.多對(duì)一關(guān)系D.一對(duì)一關(guān)系

二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

22.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

23.下列程序段的輸出結(jié)果是【】。

main()

{charb[]="Hello,you";

b[5]=0;

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

}

24.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

25.以下程序的輸出結(jié)果是______。

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

26.現(xiàn)有兩個(gè)C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入Thank!,則輸出結(jié)果是【】。

27.數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為______模式、內(nèi)部級(jí)模式與外部級(jí)模式。

28.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

29.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p/13所指向的數(shù)組元素的地址為______。

30.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

31.以下程序中給指針p分配三個(gè)double型動(dòng)態(tài)內(nèi)存單元,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

32.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("\n%2d,%2.1f,%2.11f",a,b,C);

}

33.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個(gè)數(shù)。累加的和放入x所指的存儲(chǔ)單元中。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k<n;k++)r=【】;

【】=r;

}

34.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

printf("%d\n",p+2);

}

執(zhí)行后輸出結(jié)果是【】。

35.測(cè)試用例包括輸入值集和【】值集。

36.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

37.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

scanf("%lf%lf",&x,&y);

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

}

doublemax(doublea,doubleb)

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

38.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,B);

}

39.以下程序中函數(shù)f的功能是在數(shù)組x的n個(gè)數(shù)(假定n個(gè)數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,把最大的數(shù)與最后一個(gè)數(shù)對(duì)換。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

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

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

40.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

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

}

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

}

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

三、1.選擇題(20題)41.下列不合法的用戶標(biāo)識(shí)符是()。

A.j2_KEYB.DoubleC.4dD._8_

42.以下選項(xiàng)中合法的用戶標(biāo)識(shí)符是A.longB._2TestC.3DmaxD.A.dat

43.下列敘述中錯(cuò)誤的是()。

A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別

D.在C語言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量

44.下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

45.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.TRUED.FALSE

46.下列函數(shù)定義中,會(huì)出現(xiàn)編譯錯(cuò)誤的是______。

A.max(intx,inty,int*z){*z=x>y?x:y;}z=x>y?x:y;

B.intmax(intx,y){intz;returnz;}

C.max(intx,inty){intz;z=x>y?x:y;return(z);}

D.intmax(intx,inty){returnx>y?x:y;}

47.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式x/y×z的C語言表達(dá)式是()

A.x/y*z)B.x*(1/(y*z))C.x/y*1/z)D.x/y/z

48.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

49.以下四個(gè)選項(xiàng),不能看作一條語句的是()。

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

50.設(shè)有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}

A.789B.7911C.71013D.777

51.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

52.下列選項(xiàng)中,不屬于數(shù)據(jù)庫(kù)管理的是()

A.數(shù)據(jù)庫(kù)的建立B.數(shù)據(jù)庫(kù)的調(diào)整C.數(shù)據(jù)庫(kù)的監(jiān)控D.數(shù)據(jù)庫(kù)的校對(duì)

53.下列描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲(chǔ)空間C.可隨機(jī)訪問D.需另外開辟空間來保存元素之間的關(guān)系

54.以下程序的輸出結(jié)果是

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*(z++));}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

55.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對(duì)使用

D.在switch語句中,不一定使用break語句

56.以下能正確定義數(shù)組并正確賦初值的語句是______。

A.intN=5,b[N=[N];

B.inta[1][2]={{1},{3}};

C.intc[2][]={{1,2},{3,4}};

D.intd[3][2]={{1,2},{34}};

57.對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是______。

A.程序應(yīng)簡(jiǎn)單、清晰、可讀性好B.符號(hào)名的命名要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

58.下列敘述中不正確的是

A.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

B.數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

C.數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿足用戶要求,性能良好的數(shù)據(jù)庫(kù)

D.數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持

59.若要定義a為3×4的二維數(shù)組,正確的定義語句是()

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

60.若已定義

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中則對(duì)a數(shù)組元素不正確的引用是

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

四、選擇題(20題)61.有以下程序:

fun(inta[],intm,intn)

{inti;

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

a[i+1]=a[i]+3;

returna[i+1];

}

voidmain()

{

inti,a[6]={2,4,6,8,10,12};

fun(a,2,5);

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

printf("%d",a[i]);

}

程序運(yùn)行后輸出的結(jié)果是()。

A.24691315B.24691215C.249121518D.249121415

62.若intk=8;,則執(zhí)行下列程序后,變量k的正確結(jié)果是

main()

{intk=8;

switch(k)

{case8:k+=1;

case10:k+=1;

case11:k+=1;break;

default:k+=1;

}

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

}

A.12B.11

C.10D.9

63.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

64.

65.若有定義:char*st=”howareyou”;,下列程序段中正確的是()。

A.

B.

C.

D.

66.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.軟件需求規(guī)格說明書

67.

68.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表=迭式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

69.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是______。

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

70.

71.

72.

若有定義和語句:

int**pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);

則輸出結(jié)果是()。

A.20,10B.20,20C.10,20D.10,10

73.

74.最常用的一種基本數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型,對(duì)于它的表示應(yīng)采用

A.樹B.網(wǎng)絡(luò)C.圖D.二維表

75.

若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。

i

溫馨提示

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

評(píng)論

0/150

提交評(píng)論