




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2021年安徽省合肥市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.棧的特點是B,隊列的特點是()。
A.先進先出B.先進后出
2.程序運行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040
3.若用一個大小為6的數(shù)值來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()。
A.1和5B.2和4C.4和2D.5和1
4.設"char**s;",以下正確的表達式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
5.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
6.若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為()
A.a<>0B.!aC.a=0D.a
7.下列表達式中,可以正確表示的關系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
8.如果定義“班級”關系如下:班級(班級號,總?cè)霐?shù),所屬學院,班級學生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學生C.總?cè)霐?shù)D.所屬學院
9.下列程序的運行結(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
10.設有一個二維數(shù)組A[m][n],假設A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。
A.688B.678C.692D.696
11.
12.
13.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()
A.連接碼B.關系碼C.外碼D.候選碼
14.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
15.以下選項中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
16.
17.由3個結(jié)點可以構(gòu)造出______種不同形態(tài)的二叉樹。
A.3B.4C.5D.6
18.在軟件生存周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設計B.詳細設計C.可行性分析D.需求分析
19.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項中敘述有錯的是()。
A.逗號表達式的計算結(jié)果是最后一個表達式的運算結(jié)果
B.運算符“%”只能對整數(shù)類型的變量進行運算
C.語句“ch=(unsignedint)a+b;”是對a與b之和進行強制類型轉(zhuǎn)換,結(jié)果賦值給變量ch
D.復合運算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a
20.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進
二、2.填空題(20題)21.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
22.算法的復雜度主要包括【】復雜度和空間復雜度。
23.需求分析的最終結(jié)果是產(chǎn)生【】。
24.設有以下定義和語句:
inta[3][2]={1,2,3,4,5},*p[3];
p[0]=a[1];
則*(p[0]+1)所代表的數(shù)組元素是【】。
25.面向?qū)ο蟮哪P椭?,最基本概念是對象和【】?/p>
26.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
27.以下函數(shù)的功能是求x的y次方,請?zhí)羁铡?/p>
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
28.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
29.以下程序運行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
30.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
31.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
32.數(shù)據(jù)的安全性是指保護數(shù)據(jù)以防止【】用戶的使用造成的數(shù)據(jù)泄密和破壞。
33.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
34.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
35.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
36.以下程序從輸入的10個字符串中找出最長的那個串,請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
#defineN10
main()
{charstr[N][81],*sp;
inti;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【】;
printf("輸出最長的那個串:\n%s\n",sp);
printf("輸出最長的那個串的長度:%d\n",strlen(sp));}
37.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
38.以下程序運行后的輸出結(jié)果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
39.以下程序運行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
40.下面程序的運行結(jié)果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
三、1.選擇題(20題)41.已有定義語句:intx=3,y=0,z=0;,則值為0的表達式是()
A.x&&y
B.x||z
C.x||z+2&&y-z
D.!((x<y)&&!z||y)
42.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37C.39D.3975
43.設有以下語句,其中不是對a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
44.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
45.下列程序段選擇項,使i的運行結(jié)果為3的程序段是()。
A.inti=0,j=O;(i=2,(j++)+i);
B.inti=1,j=0;j=i=((i=3)*2);
C.inti=0,j=1;(j=1)?(i=1):(i=3);
D.inti=1,j=1;i+=j+=1;
46.需求分析階段的任務是()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
47.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
48.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設計是描述______。
A.數(shù)據(jù)存儲結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測試D.軟件控制過程
49.以下敘述正確的是______。
A.可以把define和if定義為用戶標識符
B.可以把define定義為用戶標識符,但不能把if定義為用戶標識符
C.可以把if定義為用戶標識符,但不能把define定義為用戶標識符
D.define和if都不能定義為用戶標識符
50.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
51.下面程序運行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
52.下列選項中不屬于結(jié)構(gòu)化程序設計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復用
53.下面程序的運行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯
54.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
55.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
56.若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
57.設x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執(zhí)行語句x=&n后的結(jié)果為()。
A.14B.6C.2000D.4000
58.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
59.12.以下說法中正確的是()
A.#define和printf都是C語句
B.#define是C語句,而printf不是
C.printf是C語句,但#define不是
D.#define和printf都不是C語句
60.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項中引用結(jié)構(gòu)體變量成員的表達式錯誤的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge
四、選擇題(20題)61.有以下程序:
程序運行后的輸出結(jié)果是()。
A.9B.7C.5D.3
62.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
63.
64.
以下程序的輸出結(jié)果是()。
intf(intA)
{returna%2;}
main
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
A.9B.11C.19D.21
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
66.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
67.
則下面對m數(shù)組元素的引用中錯誤的是()。
A.
B.
C.
D.
68.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
69.HTTP協(xié)議的GET請求方法可以獲取()類型的數(shù)據(jù)。
A.HTML文檔B.圖片C.視頻D.以上都可以
70.在一個C源程序文件中所定義的全局變量,其作用域為()。
A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
71.
72.設有定義:charp[]={1,2,3),*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
73.
74.以下程序運行后,輸出結(jié)果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
75.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
76.
77.應用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題
B.解決數(shù)據(jù)完整性問題
C.解決數(shù)據(jù)共享問題
D.解決數(shù)據(jù)量大的問題
78.一個關系中屬性個數(shù)為1時,稱此關系為()。
A.對應關系B.單一關系C.一元關系D.二元關系
79.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
80.設“intx=2,y=1;”,則表達式(!x||Y--)的值是()。
A.0B.1C.2D.-1
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計算并輸出下列級數(shù)的前N項之和SN,直到SN+1大于q為止。q的值通過形參傳人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值為57,則函數(shù)值為59.593612。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設計題(1題)82.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存人XX所指數(shù)組中,非素數(shù)的個數(shù)通過k返回。
例如,若輸入17,則應輸出:46891012141516。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考答案
1.A
2.D[解析]第一次循環(huán)溈0.i%2為0.執(zhí)行switch(a[0]%62)中的case0語句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)的值為1.i%62為1.執(zhí)行case1:a[]=0;所以a[1]的值變成0;第三次循環(huán)的值為2.i%62為0.執(zhí)行switch([2]%62)中的case1語句后的內(nèi)容a[2]--,a[2]的值變成4;第四次循環(huán)的值為3.i%2為1.執(zhí)行case1:ai]=0;所以a[3]的值變成0.
3.B
4.B
5.C
6.D
7.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關系,所以在寫成C語言表達式應是邏輯或的關系,邏輯或運算符是'‖'。
8.B對于關系模式,若其中的每個屬性都已不能再分為簡單項,則它屬于第一范式模式。題目中“班級”關系的“班級學生”屬性,還可以進行再分,如學號、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項。
9.B解析:本題考查帶參數(shù)的宏的定義及相關運算:S=m+n+m+n*k=1+2+1+2*3=10。
10.C
11.D
12.D
13.DD)【解析】在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。
14.B本題考查指針函數(shù)。其定義的基本格式為:類型說明符(*函數(shù)名)?!邦愋驼f明符”表示返回的指針值指向的數(shù)據(jù)類型。
15.AA選項中逗號是一個操作符。
16.B
17.C難易程度:易
18.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標系統(tǒng)提出清晰、準確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。
19.C逗號表達式的計算結(jié)果是最后一個表達式的運算結(jié)果,選項A正確;運算符“%”是求余運算符,只能對整數(shù)類型的變量進行運算,選項B正確;在語句“ch=(unsignedint)a+b”中,圓括號優(yōu)先級最高,所以首先將a強制轉(zhuǎn)換成無符號整型,再與b相加,結(jié)果賦值給ch,選項C錯誤;復合運算“a*=b+ch”,先計算“b+ch”的值,再將a與b、ch之和相乘,結(jié)果再賦值給a,選項D正確。故本題答案為C選項。
20.D解析:算法分析是指對一個算法的運行時間和占用空間做定量的分析,一般計算出相應的數(shù)量級,常用時間復雜度和空間復雜度表示。分析算法的目的就是要降低算法的時間復雜度和空間復雜度;提高算法的執(zhí)行效。率。
21.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達式相當于2.0的3.0次方,結(jié)果為8.000000。
22.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
23.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。
24.a[1][1]a[1][1]解析:p是一個指針數(shù)組,p[0]指向數(shù)組a[1][0]。*(p[0]+1)代表數(shù)組a[1][1]。
25.類類解析:面向?qū)ο竽P椭?,最基本的概念是對象和類。對象是現(xiàn)實世界中實體的模型化:將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個類。
26.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
27.xx解析:函數(shù)的定義形式為;
函數(shù)類型函數(shù)名(形參表)
{
類型說明語句;
執(zhí)行語句;
}
本題中函數(shù)的功能是:累積變量以求得變量的Y次方。
28.-55。
29.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
30.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
31.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標志\'\\0\'。
\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位+六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
32.(非法)不合法(非法)不合法
33.00解析:本題考查數(shù)據(jù)類型及其運算的邏輯運算,c為空格字符但其ASCII碼不為0,所以!c=0,在邏輯與運算中,只要有一項為假,其值為0,所以b的值為0。
34.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
35.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調(diào)用函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
36.sp=str[i]sp=str[i]解析:二維字符數(shù)組即數(shù)組的每個元素又是一個字符串,即字符串數(shù)組。題中二維數(shù)組的第一行的首地址賦給字符指針sp,使sp指向了二維字符數(shù)組的一個字符串。求字符串長度函數(shù)strlen比較當前字符串與數(shù)組的下一個元素的字符串的長度,如果當前字符串的長度小于下一個元素的,則指針sp又指向了下一個元素,直到比較到數(shù)組的最后一個元素,得到的sp指針所指向的字符串即為長度最長的字符串。
37.88解析:本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
38.bcdefgha
39.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個元素,然后從最后一個數(shù)組元素開始,依次向后移動一個位置,再把保存的最后一個元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車>后主函數(shù)開始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時,調(diào)用move(s,5)函數(shù),temp=str[4]語句把數(shù)組中最后一個元素\'e\'保存在temp中,然后i從4開始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結(jié)束時str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時,調(diào)用move函數(shù),字符串為'deabc';i=3時,調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結(jié)果為'cdeab'。
40.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。
41.A
42.C解析:執(zhí)行main函數(shù)中的for語句,當i=0,j=0時,p[i][j]=p[0)[0]='3',滿足while循環(huán)條件,執(zhí)行循環(huán)體中的if語句得num=3,j=2,此時p[i][j]=p[0][2]='9',滿足循環(huán)條件,執(zhí)行while循環(huán)體得num=39,j=4,判斷while條件,不滿足并退出while循環(huán);再次執(zhí)行for語句,當i=1,j=0,p[i][j]=p[1][0]=2,滿足while條件,執(zhí)行循環(huán)體中的if語句,但不符合if條件,所以num不進行運算,j進行加2運算j=2,此時p[i][j]=p[1][2]=4,if條件為假,num不進行運算,j進行加2運算j=4,再執(zhí)行while語句,條件不符合退出循環(huán)。所以結(jié)果為39。
43.D解析:觀察程序可知,a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。
44.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。
45.D
46.DD)【解析】需求分析是軟件定義時期的最后一個階
\n段,它的基本任務就是詳細調(diào)查現(xiàn)實世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎上確定新系統(tǒng)的功能。
47.CC?!窘馕觥縎QL語言的全稱為StructuredQueryLanguage,它是一種介于關系代數(shù)與關系演算之間的結(jié)構(gòu)化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個部分。
48.B解析:從工程管理解度來看,軟件設計分兩步完成:概要設計和詳細設計。概要設計(又稱結(jié)構(gòu)設計)將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級接口、全局數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。
49.B解析:if是C語言中的保留字,所以不能作為用戶標識符;define是C語言中的預編譯命令,由于C語言中的預編譯命令都是以#開頭,所以define可以作為用戶標識符。
50.C解析:switch語句的執(zhí)行過程是:在switch后面的表達式的值和case后面常量表達式的值吻合時,就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當i=1時,從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當i=2時,從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當i=3時退出循環(huán).故最后的輸出為another、number和number,所以,4個選項中選項C符合題意。
51.C解析:本題a[2][3]定義為一個具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個長度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對應的元素值賦給**s,由于數(shù)組中第一行第一列對應的元素為9,所以本題輸出值9。
52.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向?qū)ο蟪绦蛟O計的一個優(yōu)點。
53.A解析:考查用指針來引用字符數(shù)組元素的方法。指針p1+k相當于指針p1向后移動了k個字符的位置,指針p2同理。
54.B本題主要考查C語言合法語句的定義。
在選項A中,a==1不是一個合法的語句,因為它沒有語句結(jié)束標識符“;”,不能說是一條語句,如果作為一個表達式,它是正確的。
在選項B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。
在選項C中,由于正確的賦值語句中,賦值符號的左邊不能為常量或表達式,而右邊不能為變量或表達式,很明顯,“a=a++=5;”違背了賦值語句的原則。
在選項D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強制轉(zhuǎn)換為整型的操作,應該為“a=(int)i;”。
55.A解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠非零。當x加到7時不滿足循環(huán)條件,結(jié)束循環(huán)。
56.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。
57.D解析:&是取地址運算符,表達式x=&a是表示將a的地址賦給變量x。
58.B解析:本題中有一個陷阱,很多考生會根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實while的循環(huán)體是一條空語句,即y--后面的那個分號就是while的循環(huán)體。所以本題只要弄清楚表達式y(tǒng)--何時為“假”,即等于0,就能得出結(jié)果了。因為--運算符是后綴形式,所以表達式y(tǒng)--的值是y自減之前的值,即y等于。時,表達式y(tǒng)--就等于0了。但此時的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應該選擇B。
59.CC[解析]#define是宏命令,而不是C語句
60.D解析:結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項A和選項B就是通過指針變量來引用結(jié)構(gòu)體的成員,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,而在選項D中stu[3].a(chǎn)ge不正確,因為結(jié)構(gòu)體數(shù)組stu共有三個元素,其下標應該為0,1,2。
61.D第一次循環(huán)時,k=1,在switch語句中,先執(zhí)行default后面的語句,即c=c+k=1,因為沒有break語句,所以不會跳出switch結(jié)構(gòu),會接著執(zhí)行case2后面的語句,即c=c+1=2,然后跳出switch;第二次循環(huán)時,k=2,直接執(zhí)行ease2后面的語句,即c=c+1=3,然后跳出switch語句,結(jié)束循環(huán),執(zhí)行輸出語句。
62.D本題主要考查文件的操作。在本題的程序中,首先定義了一個無返回值的函數(shù)fun,該函數(shù)帶有兩個指針類型的形參,其中第一個形參指向需要被操作文件的文件名,而第二個形參指向被操作的字符串。在函數(shù)體中,首先定義一個文件指針,然后以只寫的方式打開第一個形參所指向的文件,接著執(zhí)行for循環(huán),循環(huán)結(jié)束的條件是循環(huán)變量小于被操作字符串的長度,循環(huán)體中的程序fputc(st[i],myf);的功能是將字符串中的當前字符輸入到文件中。由這些分析我們可以知道,函數(shù)fun的作用是將字符串的內(nèi)容寫入到文件中。
在主函數(shù)中,兩次調(diào)用函數(shù)fun,當?shù)谝淮握{(diào)用時,寫入文件的內(nèi)容為newworld,然后第二次調(diào)用函數(shù),此時打開文件,文件的指針重新回到開始,然后往文件中寫內(nèi)容“hello,”,由于此時文件中已經(jīng)有內(nèi)容“newworld”,則需要覆蓋前面一部分的內(nèi)容,因此,程序的最終輸出結(jié)果是hello,rld,本題的正確答案選D。
63.B
64.A
\n在程序中當i=0時,s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當i=1時,s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達式,此時d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數(shù)組中的奇數(shù)相加,因此最后d的值為1+3+5為9,故選擇A選項。
\n
65.A本題重點考察函數(shù)的調(diào)用,首先要了解字母對應的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數(shù)形參和實參的問題,運行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因為指針c指向地址的值為b,此時b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。
66.D本題主要要求我們求判斷條件“i>j”執(zhí)行的次數(shù)。在本題的程序中,首先定義了四個整型變量,并分別賦初值,然后執(zhí)行for循環(huán)結(jié)構(gòu),該循環(huán)結(jié)構(gòu)中都是缺省語句,那么如果循環(huán)體中沒有break語句,程序?qū)⒚媾R死循環(huán),從后面的程序中我們可以看出,程序中存在一條break語句。
第一次循環(huán)時,變量k的值為2,變量i的值被改變?yōu)?,而此時變量j的值為10,執(zhí)行if(i>j)語句,結(jié)果為假,不執(zhí)行break語句,然后改變變量s的值,一次循環(huán)結(jié)束。
通過對這次循環(huán)的分析,我們發(fā)現(xiàn)變量k的值一直沒被改變,而變量i值的改變與變量k有關,且每循環(huán)一次增加2,那么變量i的改變軌跡應該為0,2,4,6,8,10,12,當i等于12時,其值大于j,條件判斷語句結(jié)果為真,執(zhí)行break語句,結(jié)束循環(huán)。從這里我們可以推斷出循環(huán)執(zhí)行的次數(shù)為6,因此,判斷條件“i>j”執(zhí)行的次數(shù)也為6次,本題的正確答案選D。
67.C數(shù)組m下標從0到4計算,共5個元素,選項c)中m[0]=5,則m[m[0]]為m[5],超出了數(shù)組m的下標范圍。因此正確答案為C)。
68.C當執(zhí)行fun函數(shù)時,因為參數(shù)傳遞時是地址傳遞,因此形參值的改變會影響實參中的數(shù),在執(zhí)行fun函數(shù)時先輸出12,接著把*X賦3,*y賦4,此時帶回主函數(shù)中,輸出的值為34。
69.D
70.A全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)。
71.B
72.A選項A計算的是p口字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù)。選項8、C和D都能計算出一個字符型數(shù)據(jù)所占的字節(jié)數(shù)。
73.D
74.B本題考查函數(shù)調(diào)用,由于a+b沒有被括起來,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故選擇B。
75.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。
76.D
77.C數(shù)據(jù)庫是對數(shù)據(jù)進行操作和管理的,可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,數(shù)據(jù)庫可以對大量數(shù)據(jù)進行管理和應用。一個應用數(shù)據(jù)庫的主要目的就是要實現(xiàn)數(shù)據(jù)的共享,能使應用數(shù)據(jù)庫的數(shù)據(jù)被大量用戶使用。
78.C解析:在關系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關系。關系的列稱為屬性,一個具有N個屬性的關系稱為N元關系。注意:各種關系查詢語言與過程性語言和非過程性語言的關系,過程性語言的特點。
79.Dfloat是4個字節(jié),int是兩個字節(jié)。當用int取float的值時,只取前兩個字節(jié)
80.B因X為2,所以!X時表達式值為0,因Y為1,y--表達式的值為1然后自減1,y為0,所以!x||y--時表達式的值為1。
81.(1)錯誤:doubleproc(doubleq)
正確:doubleproc(intq)
(2)錯誤:sum=sum+(n+1)/n;
正確:sum=sum+(double)(n+1)/n;
(3)錯誤:returnsum;
正確:returnt;
【解析】由主函數(shù)中函數(shù)調(diào)用的實參可知,函數(shù)proc()的形參為int型,因此,“doubleproc(doubleq)”應改為“doubleproc(intq)”;變量sum為double型變量,因此表達式(n+1)/n要進行強制類型轉(zhuǎn)換,因此,“sum=sum+(n+1)/n;”應改為“sum=sum+(double)(n+1)/n;”,由函數(shù)proc()可知,變量sum中存放的是SN+1項,而變量t表示SN項,因此,“returnsum;”應改為“returnt;”。
82.
【考點分析】
本題考查:如何判斷非素數(shù);循環(huán)判斷結(jié)構(gòu);數(shù)組的引用。
【解題思路】
題目要求將l—m之問的非素數(shù)存人數(shù)組中,應使用循環(huán)判斷結(jié)構(gòu)。循環(huán)語句用來遍歷1一m之間的每個數(shù),判斷語句用來判斷該數(shù)是否為素數(shù),若不是素數(shù),則將其存人數(shù)組中。這道題目是考查—個數(shù)是否為素數(shù)的簡單延伸,只要掌握了判斷素數(shù)的方法,問題便能順利解決。
【解題寶典】
判定一個數(shù)是否為素數(shù),即該數(shù)除了能被l和它本身外,不能被任何數(shù)整除。
代碼實現(xiàn)為:
for(j=2;j<i;j++)if(i%j==0)/*如余數(shù)為0,證明i不是素數(shù)·/
此語句需要熟記,很多判斷素數(shù)的題目也可通過此法解決。2021年安徽省合肥市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.棧的特點是B,隊列的特點是()。
A.先進先出B.先進后出
2.程序運行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040
3.若用一個大小為6的數(shù)值來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()。
A.1和5B.2和4C.4和2D.5和1
4.設"char**s;",以下正確的表達式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
5.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
6.若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為()
A.a<>0B.!aC.a=0D.a
7.下列表達式中,可以正確表示的關系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
8.如果定義“班級”關系如下:班級(班級號,總?cè)霐?shù),所屬學院,班級學生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學生C.總?cè)霐?shù)D.所屬學院
9.下列程序的運行結(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
10.設有一個二維數(shù)組A[m][n],假設A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。
A.688B.678C.692D.696
11.
12.
13.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()
A.連接碼B.關系碼C.外碼D.候選碼
14.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
15.以下選項中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
16.
17.由3個結(jié)點可以構(gòu)造出______種不同形態(tài)的二叉樹。
A.3B.4C.5D.6
18.在軟件生存周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設計B.詳細設計C.可行性分析D.需求分析
19.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項中敘述有錯的是()。
A.逗號表達式的計算結(jié)果是最后一個表達式的運算結(jié)果
B.運算符“%”只能對整數(shù)類型的變量進行運算
C.語句“ch=(unsignedint)a+b;”是對a與b之和進行強制類型轉(zhuǎn)換,結(jié)果賦值給變量ch
D.復合運算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a
20.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進
二、2.填空題(20題)21.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
22.算法的復雜度主要包括【】復雜度和空間復雜度。
23.需求分析的最終結(jié)果是產(chǎn)生【】。
24.設有以下定義和語句:
inta[3][2]={1,2,3,4,5},*p[3];
p[0]=a[1];
則*(p[0]+1)所代表的數(shù)組元素是【】。
25.面向?qū)ο蟮哪P椭?,最基本概念是對象和【】?/p>
26.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
27.以下函數(shù)的功能是求x的y次方,請?zhí)羁铡?/p>
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
28.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
29.以下程序運行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
30.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
31.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
32.數(shù)據(jù)的安全性是指保護數(shù)據(jù)以防止【】用戶的使用造成的數(shù)據(jù)泄密和破壞。
33.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
34.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
35.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
36.以下程序從輸入的10個字符串中找出最長的那個串,請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
#defineN10
main()
{charstr[N][81],*sp;
inti;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【】;
printf("輸出最長的那個串:\n%s\n",sp);
printf("輸出最長的那個串的長度:%d\n",strlen(sp));}
37.下列程序的輸出結(jié)果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
38.以下程序運行后的輸出結(jié)果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
39.以下程序運行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
40.下面程序的運行結(jié)果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
三、1.選擇題(20題)41.已有定義語句:intx=3,y=0,z=0;,則值為0的表達式是()
A.x&&y
B.x||z
C.x||z+2&&y-z
D.!((x<y)&&!z||y)
42.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37C.39D.3975
43.設有以下語句,其中不是對a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
44.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
45.下列程序段選擇項,使i的運行結(jié)果為3的程序段是()。
A.inti=0,j=O;(i=2,(j++)+i);
B.inti=1,j=0;j=i=((i=3)*2);
C.inti=0,j=1;(j=1)?(i=1):(i=3);
D.inti=1,j=1;i+=j+=1;
46.需求分析階段的任務是()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
47.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
48.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設計是描述______。
A.數(shù)據(jù)存儲結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測試D.軟件控制過程
49.以下敘述正確的是______。
A.可以把define和if定義為用戶標識符
B.可以把define定義為用戶標識符,但不能把if定義為用戶標識符
C.可以把if定義為用戶標識符,但不能把define定義為用戶標識符
D.define和if都不能定義為用戶標識符
50.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
51.下面程序運行后的輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
52.下列選項中不屬于結(jié)構(gòu)化程序設計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復用
53.下面程序的運行結(jié)果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有語法錯
54.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
55.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
56.若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
57.設x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執(zhí)行語句x=&n后的結(jié)果為()。
A.14B.6C.2000D.4000
58.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
59.12.以下說法中正確的是()
A.#define和printf都是C語句
B.#define是C語句,而printf不是
C.printf是C語句,但#define不是
D.#define和printf都不是C語句
60.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項中引用結(jié)構(gòu)體變量成員的表達式錯誤的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge
四、選擇題(20題)61.有以下程序:
程序運行后的輸出結(jié)果是()。
A.9B.7C.5D.3
62.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
63.
64.
以下程序的輸出結(jié)果是()。
intf(intA)
{returna%2;}
main
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
A.9B.11C.19D.21
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
66.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
67.
則下面對m數(shù)組元素的引用中錯誤的是()。
A.
B.
C.
D.
68.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
69.HTTP協(xié)議的GET請求方法可以獲取()類型的數(shù)據(jù)。
A.HTML文檔B.圖片C.視頻D.以上都可以
70.在一個C源程序文件中所定義的全局變量,其作用域為()。
A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
71.
72.設有定義:charp[]={1,2,3),*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
73.
74.以下程序運行后,輸出結(jié)果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
75.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
76.
77.應用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題
B.解決數(shù)據(jù)完整性問題
C.解決數(shù)據(jù)共享問題
D.解決數(shù)據(jù)量大的問題
78.一個關系中屬性個數(shù)為1時,稱此關系為()。
A.對應關系B.單一關系C.一元關系D.二元關系
79.有以下程序,其輸出結(jié)果是()。
voidm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郴州市會計從業(yè)資格考試及答案解析
- 餐飲員工發(fā)言稿15篇
- 涪城汽車小知識培訓班課件
- 解析卷人教版八年級上冊物理《物態(tài)變化》綜合測試試題(含答案解析版)
- 2025年商務師職業(yè)資格考試題庫:商務法律法規(guī)與倫理試題解析
- 2025年中國液體銅濃縮殺菌劑行業(yè)市場分析及投資價值評估前景預測報告
- 2025年醫(yī)保政策與案例分析考試試題型及答案
- 2025年大學《越南語》專業(yè)題庫- 越南語專業(yè)學術(shù)潛力
- 2025年高壓電工考試題庫:高壓設備操作流程規(guī)范考點
- 2025年中學教師資格考試《綜合素質(zhì)》教師職業(yè)道德與職業(yè)發(fā)展試卷(含答案)
- 洗煤安全培訓課件
- 2025湖北武漢市市直機關遴選公務員111人筆試參考題庫附答案解析
- 醫(yī)療質(zhì)量安全專項整治行動自查清單8-患者隱私
- GB/T 6900-2016鋁硅系耐火材料化學分析方法
- GB/T 16785-2012術(shù)語工作概念和術(shù)語的協(xié)調(diào)
- 廣州市材料進場檢測相關法律法規(guī)、檢測項目及取樣規(guī)則
- 工傷預防培訓-課件
- 公司技術(shù)響應表
- DBJ∕T13-358-2021 福建省城鎮(zhèn)供水基礎數(shù)據(jù)采集與管理技術(shù)標準
- 齊魯醫(yī)學UCLA肩關節(jié)評分系統(tǒng)
- Q∕SY 05064-2018 油氣管道動火規(guī)范
評論
0/150
提交評論