版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年甘肅省隴南市全國計算機等級考試C語言程序設(shè)計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數(shù)的類型是()。A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯
2.若有定義“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。
A.1B.1.9C.2D.2.4
3.
4.對于移動平均算法,是計算某變量之前n個數(shù)值的算術(shù)平均,正確的說法是()
A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)
5.有以下程序:#include<stdio.h>main(){chars[]="012xy\O8s34f4w2‘;inti;n=0;,for(i=0;s[i]!=0;i++)if(s[i]>=0s[i]<=9)n++;printf("%d\n",n);}程序運行后的輸出結(jié)果是()。A.0B.3C.7D.8
6.若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)
A.getc()B.gets()C.getehar()D.scanf()
7.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
8.設(shè)有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
9.設(shè)有以下函數(shù)“voidfun(intn,char*s){…}”,則下列對函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)(int,char);pf=&fun;
B.void*pf();pf=fun;
C.void*pf();*pf=fun;
D.void(*pf)(int,char*);pf=fun;
10.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.50C.60D.55
11.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main
{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;
p=a;
for(i=0;i<3;i++)
{if(i<2)
p[1][i]=p[1][i]-1;
else
p[1][i]=1;
}
printf("%d\n",a[o][1]+a[1][1]+a[1][2]);
}
A.8B.7C.12D.9
12.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL
13.下面不能正確表示a*b/(c*d)的表達式是()。
A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d
14.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}則以下函數(shù)調(diào)用語句錯誤的是()。
A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);
15.以下一維數(shù)組a正確的定義是()
A.inta(5)B.intn=5,a[n]C.inta[SZ]其中SZ為符號常量D.inta{5}
16.向一個棧頂指針為H的鏈棧中插入一個s所指向的結(jié)點時,需執(zhí)行()。
A.H->link=s
B.s->link=H->link;H->link=s;
C.s->link=H;H=s;
D.s->link=H;H=H->link;
17.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Zhao,m,85,Zhao,m,85
B.Sun,f,90,Zhao,m,85
C.Zhao,m,85,Sun,f,90
D.Sun,f,90,Sun,f,90
18.關(guān)于C語言中數(shù)的表示,以下敘述中正確的是()。
A.只有整型數(shù)在允許范圍內(nèi)能精確無誤地表示,實型數(shù)會有誤差
B.只要在允許范圍內(nèi)整型數(shù)和實型數(shù)都能精確地表示
C.只有實型數(shù)在允許范圍內(nèi)能精確無誤地表示,整形數(shù)會有誤差
D.只有用八進制表示的數(shù)才不會有誤差
19.以下不合法的用尸標識符是()。A.A.804zhangB._hhC.yy614D.If
20.一個棧的輸入序列為123…n,若輸出序列的第一個元素是n,輸出第i(1<=i<=n)個元素是()
A.不確定B.n-i+1C.iD.n-i
二、2.填空題(20題)21.有以下定義語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear,
union{intshare1;
floatshare2;
}share;
}a;
22.若有以下程序段:
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
則執(zhí)行后,c3中的值是【】。
23.以下程序的運行結(jié)果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
24.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
25.結(jié)構(gòu)化分析方法是面向______進行分析的方法。
26.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。
27.下列程序的運行結(jié)果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
28.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),帶鏈的棧屬于【】。
29.以下程序的輸出結(jié)果是【】。
main()
{char*p=“abodefgh”,*r;
long*q;
q=(long*)p;
q++;
r=(char*)q;
printf(“%s\n”,r);
}
30.以下程序運行后的輸出結(jié)果是______。
main()
{
charc1,c2;
for{c1='0',c2='9';c1<c2;c1++,C2--)
printf("%c%c",c1,c2);
printf("\n");
}
31.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁?,使之完整?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
32.下列程序的運行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
33.下列程序的運行結(jié)果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
34.fseek函數(shù)的正確調(diào)用形式是【】。
35.下列程序段的運行結(jié)果是______。
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+3));
36.有以下程序
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后輸出結(jié)果是【】。
37.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
38.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
39.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);;
}
程序運行時輸入12<回車>,執(zhí)行后輸出結(jié)果是【】。
40.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara='A';
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
三、1.選擇題(20題)41.下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);
A.63B.36C.編譯出錯D.00
42.設(shè)有以下語句typedefstructTT{charc;inta[4];}CIN;則下面敘述中正確的是______。A.可以用TT定義結(jié)構(gòu)體變量
B.TT是struct類型的變量
C.可以用CIN定義結(jié)構(gòu)體變量
D.CIN是structTT類型的變量
43.在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
44.已知inta=1,b=3則a^b的值為
A.3B.1C.2D.4
45.以下選項中,不能正確賦值的是______。
A.chars1[10];s1="chest";
B.chars2[]={'C','t','e','s','t'};
C.chars3[20]="Chest";
D.char*s4="Ctest\n"
46.軟件系統(tǒng)生命周期的第一個階段是______。
A.軟件分析階段B.軟件設(shè)計階段C.軟件運行階段D.軟件維護階段
47.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2:c=(a++)-1;printf("%d,%d",a,c);c+=(a+=-a+++(++B);printf("%d,%d",a,c);}
A.3,14,1B.3,14,2C.2,04,1D.2,14,1
48.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
49.以下敘述中正確的是()。
A.調(diào)用printf函數(shù)時,必須要有輸出項
B.使用putchar函數(shù)時,必須在之前包含頭文件stdio.h
C.在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出
D.調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應的ASCⅡ碼
50.設(shè)有定義:charp[]={‘1’,‘2’,‘3’,},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是______。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
51.組成計算機網(wǎng)絡(luò)的最大好處是()
A.進行通話聯(lián)系B.資源共享C.發(fā)送電子郵件D.能使用更多軟件
52.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}}
該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
53.有以下計算公式:
若程序前面已在命令行中包括math.h文件,不能夠正確計算上述公式的程序是()。
A.if(x>=0)y=sqrt(x);
B.y=sqrt(x);elsey=sqrt(-x);if(x<0)y=sqrt(-x);
C.if(x>=0)y=sqrt(x);
D.y=sqrt(x>=0?x:-x);
54.以下敘述正確的是A.C語言比其他語言高級
B.C語言可以不用編譯就能被計算機識別執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式
D.C語言出現(xiàn)的最晚、具有其他語言的一切優(yōu)點
55.若x=3,y=z=4,則下列表達式的值分別為()(1)(z>=y(tǒng)>=x)?1:0(2)y+=z,x*=y(tǒng)
A.024B.18C.08D.112
56.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char為指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
57.若有以下的說明語句,則與它等價的說明是chars[3][5]={"aaaa","bbbb","cccc"};
A.char**s1={"aaaa","bbbb","cccc"};
B.char*s2[3]={"aaaa","bbbb","cccc"};
C.chars3[][5]={"aaaa","bbbb","cccc"};
D.chars4[][4]={"aaaa","bbbb","cccc"};
58.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
59.以下4組用戶定義標識符中,全部合法的一組是
A._mainencludesin
B.If_maxturbo
C.txtREAL3COM
D.intk_2_001
60.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值.
D.當在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL
四、選擇題(20題)61.
62.(VC++)若有以下定義,則對b數(shù)組元素正確的引用是
intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]
63.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
64.結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
65.有以下程序:
#include<stdio.h>
main()
{chara[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%S%S%s\n",a,b,c);
}
程序運行時從第一列開始輸入:
Thisisacat!<回車>
則輸出結(jié)果是()。
A.Thisisacat!
B.Thisisa
C.Thisisacat!
D.Thisisacat!
66.有以下程序段
structSTU
{charnum[10];floatscore[3];};
main()
{
structSTUs[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
inti;floatsum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序運行后的輸出結(jié)果是
A.260.00B.270.00
C.280.00D.285.00
67.下列選項中屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A.可行性研究
B.需求分析
C.詳細設(shè)計
D.軟件維護
68.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。
A.順序結(jié)構(gòu)B.選擇(分支)結(jié)構(gòu)C.GOT0跳轉(zhuǎn)D.重復(循環(huán))結(jié)構(gòu)
69.
70.
71.以下敘述中錯誤的是()。A.可以通過typedef增加新的類型
B.可以用typedef已存在的類型用一個新的名字來代表
C.用pypedef義新的類型名后,原有類型名仍有效
D.用pypedef以為各種類型起別名,但不能為變量起別名
72.
73.
74.若有以下程序
#include<stdio.h>
voidf(intn);
main()
{
voidf(intn);
f(5);
}
voidf(intn)
{
printf("%d\n",n);
}
則以下敘述中不正確的是
A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f
B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f
C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復說明
D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型
75.
76.
77.
78.有如下程序
#include<stdio.h>
main()
{
FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后,文件f1.txt中的內(nèi)容為
A.goodabcB.a(chǎn)bcd
C.a(chǎn)bcD.a(chǎn)bcgood
79.
能正確表示“當x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)
B.(x>=1)
C.
D.(x<2=10)
E.
F.(x>=100)
G.
H.(x<=1l0)
I.(gt;=1)&&(x<=10)
J.
K.(gt;=100)&&(x<=110)
80.有以下程序:
程序運行后的輸出結(jié)果是()。
A.02356B.0235C.235D.2356
五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已
在主函數(shù)中賦予。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<strin9.h>
#include<stdi0.h>
#defineM80
voidproc(char*arr)
{inti,j,n;charch;
n=strlen(arr):
for(i=1;i<n;i++)
//****found****
{c=arr[i];
j=i-1;
while((j>=o)&&(ch<arr[j]))
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
voidmain
{
chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("Theoriginalstring:%s\n",a);
proc(a);
printf("Thestringaftersortin9:
%s\n\n",a);
}
六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和。號。請編寫函數(shù)fun,其功能是:將字符串尾部的。號全部刪除,前面和中間的*號不動。
參考答案
1.A本題考查函數(shù)值的類型,在函數(shù)定義時,由于函數(shù)沒有說明其類型,系統(tǒng)默認一律自動按整型(int)處理。
2.A在表達式“z=0.9+x/y”中,先計算“3.6-2”,結(jié)果為1;再計算“0.9+1”,結(jié)果為1.9。因為變量z為整型,所以z的值為1。故本題答案為A選項。
3.A
4.A
5.B考查簡單的C程序數(shù)組和循環(huán)。for循環(huán)是指i=0,如果s/[3]!=0,則i自動加1。if循環(huán)指的是s[i]中的元素大于等于0且小于等于9,則n加l,所以答案為B。
6.B解析:scanf()語句用“空格”區(qū)別不同的字符串;getc()與getchar()語句不能用于字符串的讀入。
7.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。
8.A根據(jù)題目中的定義可知,“sizeof(p)”計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。故本題答案為A選項。
9.D函數(shù)的參數(shù)可以是指針類型,它的作用是將一個變量的地址傳送到另一個函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應該定義為“void(*Pf)();”。如果定義為“void*pf();”,則表示函數(shù)pf的返回值是一個基類型為void的指針。故本題答案為D選項。
10.C內(nèi)部靜態(tài)變量是始終存在的,當函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前調(diào)用時的數(shù)值仍然保留著。Fun(a,5)的值是l5,再次調(diào)用后slim=15,所以Fun(b,4)=45,s=45+15=60。
11.B
\n本題考查for循環(huán)及if…else語句嵌套,第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=l,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
\n
12.D當k=1時,引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當k=2時,引用的是數(shù)組元素w[2][2],即字符串“KL”;當k=3時,結(jié)束程序的執(zhí)行。注意:字符串數(shù)組的定義。
13.A
14.D運算符“()”的優(yōu)先級高于運算符“*”?!?*f)()”定義函數(shù)指針,f是指向函數(shù)的指針。執(zhí)行語句“f=add;”,將函數(shù)add的首地址賦給指針f,所以調(diào)用函數(shù)add可以寫為f。函數(shù)的返回值是整型,不是指針類型,不能用運算符,故*f(a,b);”的調(diào)用方式錯誤。故本題答案為D選項。
15.C
16.C
17.D程序定義結(jié)構(gòu)體類型STU,main函數(shù)定義結(jié)構(gòu)體STU變量b,并將b的地址賦給指針變量a。調(diào)用函數(shù)f,傳入a。在函數(shù)f中,定義了STU變量c,并將c的地址賦給d,再用d指向的值賦給a指向的地址,接著輸出a指向的值,也就是c的值:Sun,f,90。由于函數(shù)f的調(diào)用通過指針參數(shù)a修改了變量b的值,因此a指向的值也就是b的值等價于c:Sun,f,90。本題答案為D選項。
18.A當數(shù)據(jù)類型是實數(shù)時,在存儲過程中,當小數(shù)部分無限長時,會存在小數(shù)部分的截斷,會存在誤差,所以答案選擇A。
19.AC語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線。
20.B
21.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4-10。
22.00解析:在賦值運算中。如果表達式中變量和常量的數(shù)據(jù)類型不一致就會自動進行類型轉(zhuǎn)換。系統(tǒng)會計算1.0/c2,由于1.0是實型,所以均先轉(zhuǎn)化為雙精度型0.500000,再和c1轉(zhuǎn)化后的雙精度數(shù)相乘得0.500000。但其要賦值給整型變量c3,故要進行強制轉(zhuǎn)換,c3的值為0。
23.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
24.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。
25.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
26.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
27.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當前元素,得到a的值應為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。
28.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:帶鏈的棧屬于棧的鏈式存儲結(jié)構(gòu)。
29.efghefgh解析:本題定義了一個字符型指針變量p并通過賦初值讓它指向了一個字符串,定義了另一個字符型指針變量r和一個長整型指針變量q。首先通過語句“q=(long*)p;”把P的地址值強制轉(zhuǎn)換為長整型地址值并賦值給q,然后執(zhí)行“q++;”,地址值增加了4,執(zhí)行語句“r=(char*)q;”,把長整型指針變量q的值再強制轉(zhuǎn)換成字符型地址值并賦給r,r的值應為字符串中字符“e”的地址,最后輸出,指向的字符中,是“efgh”。
30.918273645918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符'0'和'9',然后每次循環(huán)結(jié)束給c1增1、c2減1,循環(huán)條件為c1<c2,即讓c1的值依次為'0'、'1'、'2'…,c2的值依次為'9'、'8'、'7'…,直到兩個數(shù)相遇時結(jié)束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值.所以最終的輸出結(jié)果為:0918273645。
31.++pw[i-1]
32.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
33.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。
“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。
本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。
34.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點)
“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當文件的長度大于64k時不致出現(xiàn)問題。ANSIC標準規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。
35.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應ASCII碼值68。
36.-4-4解析:if…else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。
37.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。
38.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。
39.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。
40.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符“A”的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
41.B解析:程序看上去是要實現(xiàn)交換兩個指針的值,但是C語言中實參變量和形參變量之間的數(shù)據(jù)傳遞是單向的“值傳遞”,指針變量做函數(shù)參數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不能企圖通過改變形參指針的值而使實參指針的值也改變。所以本題的輸出結(jié)果是36。
42.C解析:將題目中的定義語句去掉前面的typedef和后面的CIN(分號保留),就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,TT是結(jié)構(gòu)體名,大括號里面的是結(jié)構(gòu)體成員的定義。此時要聲明該結(jié)構(gòu)體變量時需要使用struct加結(jié)構(gòu)體名一起來聲明,structTT一起構(gòu)成一個結(jié)構(gòu)體類型,就好像字符類型char。若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時聲明個結(jié)構(gòu)體變量CIN的語句,因為CIN的前面部分是structTT的完整寫法,可以看作是structTT。C語言允許用typedef說明一種新類型名,其語法格式為:
typedef類型名標識符;
以后就可以用該標識符來代替被說明的類型名了。因此,當前面存在typedef時,該語句就變成了給structTT的定義一個新的名稱CIN。所以,此時的CIN是一個結(jié)構(gòu)體類型,它相當于structTT,即可以和char一樣單獨用來聲明該結(jié)構(gòu)體變量,而TT只是一個結(jié)構(gòu)體名,不能單獨用來聲明變量。所以,4個選項中C符合題意。
43.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
44.C解析:^是按位異或運算,如果對應位不同則結(jié)果為1,相同則為0。
45.A解析:語言中不能將字符串常量直接賦給數(shù)組。但在賦初值時可以。
46.A解析:軟件工程的第一個階段是軟件分析階段。軟件分析階段的工作是由軟件分析員和用戶一起來做的。軟件分析的結(jié)果是分析人員寫出的分析報告,該分析報告實際上就是軟件系統(tǒng)的系統(tǒng)總體設(shè)計方案。
47.A解析:本題主要考查自加運算符(++、--)的使用。①前綴變量“++i、-i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算:②后綴變量“i++、i--”,先使用此時的表達式的值參與運算,在使用i之后,再使i的值加1或者減1。本題中計算表達式c=(a++)-1時先使用a的值進行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后,的值是3;表達式c+=-a+++(++b)等價于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時a=4,b=3。
48.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
49.B
50.A解析:本題考查的重點是sizeof()的運用。sizeof用于返回其操作數(shù)(變量、類型)相對應數(shù)據(jù)類型的字節(jié)數(shù)。因此,選項A是錯誤的,因為p是一個地址,它既不是一個數(shù)據(jù)類型,也不是數(shù)據(jù)變量。
51.B
52.B解析:該題目應該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以排除選項C)。
53.B
54.C解析:目前,在社會上使用的程序設(shè)計語言有上百種,它們都被稱為計算機“高級語言”,如BASIC,C語言等。但是對于計算機本身來說,它并不能直接識別由高級語言編寫的程序,只能接受并處理由0,1代碼組成的數(shù)據(jù),即所謂的機器語言代碼。目前,一些程序設(shè)計語言(如Visual\u3000Basic\u3000Visual\u3000C++和Visual\u3000FoxPro等)所具有的面向?qū)ο蠹夹g(shù),C語言則沒有。
55.A
56.A解析:C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的'*'結(jié)合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。
57.C解析:本題中的s數(shù)組是一個二維字符數(shù)組,選項A)是一個雙重指針,但字符串的長度沒有限制;選項B)是一個元素為字符指針的數(shù)組,同樣的也是字符串的長度沒有限制;選項D)中,每個字符串的長度限制為4,不正確。注意:用字符數(shù)組作為字符串和用指針指向的一個字符串之間的區(qū)別。
58.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
59.A解析:標識符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列(例如,-max含非法字符-),并且用戶標識符不能與C語言中的32個關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標識符)。選項B中-max不是字母、數(shù)字或下劃線組成的字符序列;選項C中3COM不是由字母或下劃線開頭;選項D中int為C語言中的關(guān)鍵字;選項A中全部為合法的標識符。
60.C解析:函數(shù)形參和實參分別占用不同的內(nèi)存單元,改變形參的值不會影響對應實參的值,選項A)正確。指針類型的函數(shù)可以返回地址值,選項B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項D)也正確。指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項C)錯誤。
61.C
62.D這是二維數(shù)組,所以A錯\r\n數(shù)組是從0開始,所以第一個不能有2,第二個不能有3.所以B,C錯。
63.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈式結(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
64.D結(jié)構(gòu)化程序設(shè)計的基本要點:①采用自頂向下、逐步求精的程序設(shè)計方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。
65.D答案為D,空格表示結(jié)束,則c里面的內(nèi)容為'acat!',前面沒有空格。
66.B在本題中,程序首先定義一個結(jié)構(gòu)體,結(jié)構(gòu)體中含有兩個結(jié)構(gòu)體成員,兩個結(jié)構(gòu)體成員都是數(shù)組。
在主函數(shù)中,首先定義了一個大小為3的該結(jié)構(gòu)體數(shù)組s,并對其進行初始化操作,然后定義了一個該結(jié)構(gòu)體類型的指針變量p,使其指向結(jié)構(gòu)體數(shù)組s,接著定義兩個變量,整型變量i作為循環(huán)變量,浮點型變量sum用來保存和計算結(jié)果。然后執(zhí)行for循環(huán)。
當循環(huán)變量i=0時,執(zhí)行sum=sum+p->score[i];語句,p->score[0]表示結(jié)構(gòu)體數(shù)組中第一個結(jié)構(gòu)體變量的score[0]值,即90,本次循環(huán)結(jié)束后,sum的值為90。
當
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鑄造碳化鎢制管工崗前沖突管理考核試卷含答案
- 鐵合金焙燒操作工安全管理測試考核試卷含答案
- 2025內(nèi)蒙古自治區(qū)公務(wù)員考試數(shù)量關(guān)系專項練習題完整參考答案
- 耐蝕混凝土工創(chuàng)新意識測試考核試卷含答案
- 營銷員崗前流程優(yōu)化考核試卷含答案
- 農(nóng)機駕駛操作員誠信道德能力考核試卷含答案
- 廢礦物油再生處置工安全應急評優(yōu)考核試卷含答案
- 2024年湖南交通工程學院輔導員考試筆試題庫附答案
- 2024年湖北師范大學輔導員考試筆試真題匯編附答案
- 2024年遼寧地質(zhì)工程職業(yè)學院輔導員考試參考題庫附答案
- 2026年廣東粵海水務(wù)股份有限公司招聘備考題庫及一套答案詳解
- 中西醫(yī)結(jié)合治療慢性病康復優(yōu)勢
- 診所醫(yī)生營銷培訓課件
- 一節(jié)課說課模板課件
- 河道清潔員安全培訓課件
- 2026年鐘山職業(yè)技術(shù)學院高職單招職業(yè)適應性測試備考試題帶答案解析
- 上海市普陀區(qū)2025-2026學年八年級上學期期中語文試題(含答案)
- 人教版(2024)八年級上冊英語期末復習:各單元語法精講+練習題(無答案)
- 水土流失綜合治理工程項目可行性報告
- 美的空調(diào)使用培訓
- 安利價值遠景課件
評論
0/150
提交評論