版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年河南省周口市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。
A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b
2.對線性表進行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關鍵碼值排好序
B.線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序
C.線性表以鏈式方式存儲,并按關鍵碼值排好序
D.線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序
3.關于指針,以下說法正確的是()。A.可以直接向指針中寫入數(shù)據(jù)
B.若指針指向變量,則可以向指針所指內存單元寫入數(shù)據(jù)
C.指針可以指向內存中任何位置,并寫入數(shù)據(jù)
D.兩個指針可以通過加運算求和,形成一個功能更強大的指針
4.下列程序的輸出結果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5
5.下面程序中算法的時間復雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)
6.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結果是A.A.0X0
B.0x0
C.0
D.0xABC
7.定義下列結構體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);執(zhí)行語句printf("%d,%C",a[2].age,*(a[3].name+2))的輸出結果為()。A.15,AB.16,HC.16,AD.17,H
8.設有定義“inta=1,b=2,c=3;”,以下語句中執(zhí)行效果與其他3個不同的是()。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;}
9.對于下述程序,在方式串分別采用“wt”和“wb”運行時,兩次生成的文件TEST的長度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}
A.7字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)
10.若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,下列選項中錯誤的程序是()。
A.main(){…x=fun(2,10);…}floatfun(inta,intB){…}
B.floatfun(inta,intB){…}main(){…x=fun(i,j);…}
C.floatfun(int,int);main(){…x=fun(2,10);…}floatfun(inta,intB){…}
D.main()…{floatfun(inti,intj);…x=fun(i,j);…}floatfun(inta,intB){…}
11.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關系B.數(shù)據(jù)流C.控制流D.調用關系
12.
13.在一個有頭結點的鏈隊列中,假設f和r分別為隊首和隊尾指針,則隊頭出隊的運算是()。
A.q=f->next;f->next=f->next->next;free(q);
B.q=f;f->next=f->next->next;free(q);
C.f->next=f->next->next;q=f->next;free(q);
D.q=f->next->next;f=f->next;free(q);
14.在C語言中,函數(shù)隱含的類型是()
A.autoB.staticC.intD.void
15.以下選項中合法的C語言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
16.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的運行結果是
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
17.已知一算術表達式的中綴形式為A+B*C–D/E,后綴形式為ABC*+DE/–,其前綴形式為()。
A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE
18.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
19.若有定義“intw[3][5];”,則以下不能正確表示該數(shù)組元素的表達式是()。
A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]
20.以下程序的輸出結果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
二、2.填空題(20題)21.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
22.下列軟件系統(tǒng)結構圖的寬度為[]。
23.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為______。
24.以下程序的輸出結果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
25.以下程序的輸出結果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
26.以下程序的輸出結果是#include<stdio.h>structstiintx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&it[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}
27.若有定義:inta[4][4]={{l,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
28.模式/內模式映射為數(shù)據(jù)庫提供了【】數(shù)據(jù)獨立性。
29.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。
30.以下程序是求矩陣a,b的和,結果存入矩陣c中,并按矩陣形式輸出,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=【】;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");}}
31.若有定義:inta=10,b=8,c=4;然后順序執(zhí)行下列語句后,變量a中的值是()。c=(b-=(a-4));a=(c%2)+(b-1);
32.有以下程序
main()
{intn=0,m+1,X=2;
if(!n)X-=l;
if(m)X-=2;
if(X)X-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結果是【】。
33.以下程序的運行結果是()。main(){inta=1,b=2,c;if(a>B)c=1;elseif(a==B)c=0;elsec=-1;printf("%d\n",C);}
34.下列程序可以將從鍵盤上輸入的十進制數(shù)(10ng型)以二到十六進制形式輸出。
#include.<stdio.h>
main()
{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
intc[64],d,i=0,base;
longn;
printf("enteranumber:\n");scanf("%1d",&n);
printf("enternewbase:\n");scanf("%d",&baBe);
do
{c[i]=【】;
i++;n=n/base;
}while(n!=0);
printf("transmitenewbabe:\n");
for{--i;i>=0;--i)
{d=c[i];
printf("%c",b【】);
}
}
35.設在主函數(shù)中有以下定義和函數(shù)調用語句,且fun函數(shù)為void類型,請寫出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
36.在結構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。
37.以下程序的定義語句中,x[1]的初值是【】,程序運行后輸出的內容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
38.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
39.函數(shù)fun的功能是使一個字符串按逆序存放。請?zhí)羁铡?/p>
voidfun(charstr[])
{charm;inti,j;
for(i=0,j=strlen(str);i<【】;i++,j--)
{m=str[i];
str[i]=【】;
str[j-1]=m;
}
printf("%s\n",str);
}
40.以下程序運行后的輸出結果是______。
#include<string.h>
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
三、1.選擇題(20題)41.下列程序的運行結果是
#include"stdio.h"
main()
{intx=-9,y=5,z=8;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);}
A.6B.7C.8D.9
42.在單鏈表中,增加頭結點的目的是______。
A.方便運算的實現(xiàn)B.使單鏈表至少有一個結點C.標識表結點中首結點的位置D.說明單鏈表是線性表的鏈式存儲實現(xiàn)
43.若定義staticinta[2][2]={1,2,3,4},則a數(shù)組的各數(shù)組元素分別為______。
A.a[0][0]=1、a[0][1]=2、at[1][0]=3、a[1][1]=4
B.a[0][0]=1、a[0][1]=3、a[1][0]=2、a[1][1]=4
C.a[0][0]=4、a[0][1]=3、a[1][0]=2、s[1][1]=1
D.a[0][0]=4、a[0][1]=2、a[1][0]=3、a[1][1]=1
44.有以下程序并include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){charp[]="1234567";fun(p,strlen(p));puts(p);}程序運行后的輸出結果是()
A.1234567B.7654321C.1711717D.7177171
45.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法
A.對象B.數(shù)據(jù)結構C.數(shù)據(jù)流D.目標
46.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是()
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.3者沒有明顯的包含關系
47.下面程序的輸出結果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,7,10},*p;p=a;printf("%d\n",*p+8);}
A.0B.1C.10D.9
48.若有以下定義(設int類型變量占2個字節(jié))inti=8,j=9:則以下語句:printf("i=%%d,j=%%%d\n",i,j);輸出的結果是()。
A.i=8,j=9B.i=%d,j=%8C.i=%d,j=%dD.8,9
49.以下程序的功能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分并輸出,程序如下:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf(“%f”,&score);sum+=score;}ave=sum/4.0;printf(“NO%d:%f\n”,n,ave);}}上述程序運行后結果不正確,調試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句是
A.sum=0.0;
B.sum+=score;
C.ave=sum/4.0;
D.printf(“NO%d:%f\n”,n,ave);
50.有以下程序int*f(znt*x,int*y){if(*x<*y)returnX;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d.%d\n",*p,*q,*r);}執(zhí)行后輸出結果是
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
51.下列敘述中正確的是A.break語句只能用于switch語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.在switch語句中,不一定使用break語句
52.在位運算中,操作數(shù)左移一位,其結果相當于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
53.若已經定義的函數(shù)有返回值,則以下關于該函數(shù)調用的敘述中錯誤的是______。
A.函數(shù)調用可以作為獨立的語句存在
B.函數(shù)調用可以作為一個函數(shù)的實參
C.函數(shù)調用可以出現(xiàn)在表達式中
D.函數(shù)調用可以作為一個函數(shù)的形參
54.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
55.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結構:
指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
56.在C語言中,可以把整數(shù)以二進制形式存放到文件中的函數(shù)是()
A.fprintf()函數(shù)B.fread()函數(shù)C.fwrite()函數(shù)D.fputc()函數(shù)
57.若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>='0'&&a[i]<='9';i+=2)t=10*t+a[i]一-'0';printf("%d\n',t);}則程序運行后的輸出結果是()。
A.13B.1234C.24D.123
58.設有二元關系R和三元關系S,下列運算中合法的是()。
A.RUSB.RNSC.R-SD.RXS
59.下面的程序片段
y=-1;
if(x!=0)
if(x>0)y=1;elsey=0;
所表示的數(shù)學函數(shù)關系是_______。
A.
B.
C.
D.
60.以下不合法的用戶標識符是______。A.j2KEYB.DoubleC.4dD._8_
四、選擇題(20題)61.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關系B.數(shù)據(jù)流C.控制流D.調用關系
62.數(shù)據(jù)庫設計中反映用戶對數(shù)據(jù)要求的模式是()。
A.內模式B.概念模式C.外模式D.設計模式
63.下列程序的運行結果是()。
#include<stdio.h>
voidfun(int*S,int*p)
{staticintt=3:
*p=s[t];
t--;
}
voidmain
{inta[]={2,3,4,5),k;
intx;
for(k=0,k<4,k++)
{fun(a,&x);
printf("%d,",x);
}
}A.A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
64.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
65.下列關于C語言的敘述錯誤的是()。
A)大寫字母和小寫字母的意義相同
B)不同類型的變量可以在一個表達式中
C)在賦值表達式中等號(=)左邊的變量和右邊的值可以是不同類型
D)同一個運算符號在不同的場合可以有不同的含義
66.下列關于二叉樹的敘述中,正確的是()。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數(shù)是度為2的結點數(shù)的兩倍
D.度為2的結點數(shù)是度為1的結點數(shù)的兩倍
67.
68.以下不能將a所指字符串正確復制到所指存儲空間的是()。
69.當變量c的值不為2、4、6時,值也為”真”的表達式是()。
A.
B.
C.
D.
70.
71.下列函數(shù)的功能是()。
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進行比較
D.檢查a和b所指字符串中是否有’\0
72.
73.第
42
題
若有說明語句
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串時,字符串的長度不受限制
C.p變量中存放的地址值可以改變
D.a中只能存放10個字符
74.有以下程序:
程序執(zhí)行后的輸出結果是()。
A.357B.753C.369D.751
75.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
76.棧和隊列的共同特點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點
77.
78.
79.在關系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是()。
A.網(wǎng)狀結構B.樹狀結構C.屬性D.二維表
80.若變量c為char類型,能正確判斷出c為小寫字母的表達式是_______。A.′a′<=c<=′z′
B.(c>=′a′)||(c<=′z′)
C.(′a′=C)
D.(c>=′a′)&&(c<=′z′)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將字符串str中的所有字符復制到字符串b中,要求在每復制3個字符之后插入1個空格。例如,在調用proc()函數(shù)之前給字符
串str輸入abcdefghijk,調用函數(shù)之后,字符串b中的內容則為abcdefghijk。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),它的功能是將ss所指字符串中所有下標為奇數(shù)的字母轉換為大寫字母(若該位置上不是字母,則不轉換)。例如,若輸入“abc4Efg”,則應輸出“aBc4EFg”。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D
2.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關鍵碼值的大小排好序,而不是按關鍵碼的檢索頻率排序。
3.BC語言中指針就是變量的地址,它必須有確定的基類型。當指針指向某個變量時,才能向其中寫入數(shù)據(jù),選項A錯誤,選項B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時不能寫入數(shù)據(jù),另外指針必須有基類型,只能指向基類型相同的變量,選項C錯誤;指針只能與一個整數(shù)進行運算,即移動指針,兩個指針不能運算,選項D錯誤。本題答案為B選項。
4.B本題考查函數(shù)調用時的參數(shù)傳遞。在函數(shù)調用時,形參是指向實參的指針變量,則printf的執(zhí)行結果為++x;x=3,則3+1=4。
5.C
6.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個整型變量m、n,對這兩個變量賦值,輸入的數(shù)值為十六進制整數(shù),并且有m=n。進行m-n運算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進制的標志,輸出數(shù)據(jù)時,數(shù)據(jù)前面不會自動加上進制的標志。
7.C本題考查結構體數(shù)組。a[2].age為結構體aEZ]的age成員,即a[3].name為指向結構體a[3]的name成員的第一個元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2)是取指針所指向地址的內容。
8.C因為變量“a=1,b=2”,所以表達式“a>b”不成立。選項A、B和D相當于一條語句,選項A是逗號表達式,選項B和選項D是復合語句,所以都沒有執(zhí)行。選項C中,語句“c=a;”不執(zhí)行,語句“a=b;b=c;”執(zhí)行。故本題答案為C選項。
9.B解析:以“wt”方式寫入的是字符文件,轉義字符\'\\n\'被看作兩個字符來處理。而'wb'方式寫入的是二進制文件,轉義字符\'\\n\'是一個字符。故正確答案為選項B)。
10.A在調用函數(shù)時,應對其進行說明。A選項中,調用時沒有對函數(shù)進行說明。B、C選項中,被調用函數(shù)在主調函數(shù)之前定義,不用說明。D選項中,在主函數(shù)中對被調用函數(shù)的返回值類型進行了說明。故本題答案為A選項。
11.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調用關系。構成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
12.A
13.A
14.C
15.B所謂常量,是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,需要使用雙引號;選項C不是合法的常量形式;選項D為實型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項。
16.D解析:在本題中,主函數(shù)在調用fun()函數(shù)進行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進行從大到小的順序排列。排序之后,數(shù)組c的內容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。
17.D
18.D結構workers中的成員s是一個嵌套的結構類型定義,因此在給year賦值時,要用“.”運算在深入一層訪問到最基本的成員year,只有D項反映出了這一點。
19.DA選項中,“*(&w[0][0]+1)”表示“w[0][1]”;B選項中,“*(*w+3)”表示“w[0][3]”;C選項中,“*(*(w+1))”表示“w[1][0]”;D選項中,“*(w+1)[4]”的正確寫法是“(*(w+1))[4]”,表示“w[1][4]”。故本題答案為D選項。
20.A函數(shù)的功能是對數(shù)組某一區(qū)域內的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。
21.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內容,即100,所以x=100+50=150。
22.33解析:軟件系統(tǒng)結構圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
23.1616解析:函數(shù)運算不改變數(shù)據(jù)類型,所以結果也是double型,fabs(x)是對x取絕對值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結果為double型)。
24.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
25.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當while的條件表達式(i<7&&p[i]%2=1)的值為真時,執(zhí)行語句j+=p[i++];,如:當i=0時,i<7為真,p[i]%2=11%2=1,表達式(p[i]%2=1)的值為真,所以接個表達式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。
26.C
27.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有,4個元素,a[0]的元素為a[0][0]、a[0][1]、a[O][2]、a[0][3]。
28.物理物理
29.輸出結果輸出結果解析:注意:測試的基本方法和步驟。
30.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環(huán)結構應用在了二維數(shù)組中。外層for循環(huán)用來控制二維數(shù)組的行,內層for循環(huán)控制二維數(shù)組的列。
31.22解析:本題考查的是基本賦值運算符和賦值表達式。表達式c=(b-=a-4)等價于c=(b=b-a+4)等價于c=b=2;表達式a(c%2+(b-1))等價于a=1+2-1=2;因此最后a的值為2。
32.-4-4解析:if-else構造了一種二路分支選擇,是一種最基本的選擇結構,if(條件)S1(if分結構)elseS2(else分結構),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結構(S1);否則(不成立,值為0),就執(zhí)行else分結構(S2)。本題中,n=O,可以判斷(!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。所以,最后輸出為-4。
33.-1-1解析:if~else語句的形式:if(表達式)語句1elseif語句2else語句3它的功能是:若表達式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷;a=1,b=2,條件a>b不成立,繼續(xù)判斷a==b,仍不成立,則執(zhí)行c=-1,輸出-1。
34.n%base[d]
35.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調用“不帶回值”,可以用“void”定義函數(shù)為“無類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當二維數(shù)組作為形參時,二維數(shù)組的第一維可以省略。
36.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。
37.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當i=0時,p[0]=&x[1],p[0][0]=2;當i=1時,p[1]=&x[3],p[1][0]=4;當i=2時,p[2]=&x[5],p[2][0]=6;當i=3時,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結果為2、4、6、8。
38.*(p+5)或p[5]*(p+5)或p[5]
39.strlen(str)/2str[j-1]
40.abcbcc
41.D解析:if卐lse語句的執(zhí)行過程如下,首先計算if后面一對圓括號內表達式的值,若表達式的值為非0,執(zhí)行if子句,然后跳過else子句,去執(zhí)行if語句后的下一條語句;若表達式的值為0,跳過if子句,去執(zhí)行else子句,接著去執(zhí)行if語句后的下一條語句。C語言的語法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無關,本題目的后一個if-else相當于嵌套在第一個if子句里,相當于x<y&&y<0時,z=0;當x<y&&y>=0時,z=z+1。
42.A\nA。【解析】頭結點不僅標識了表中首結點的位置,而且根據(jù)單鏈表(包含頭結點)的結構,只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結點的目的是為了便于運算的實現(xiàn)。
\n
43.A
44.C
45.CC?!窘馕觥拷Y構化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
46.B解析:數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡稱DBS)包括數(shù)據(jù)庫(Database,簡稱DB)、數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS):數(shù)據(jù)庫管理員、硬件和軟件。
47.D解析:“*”號的優(yōu)先級比“+”的優(yōu)先級高,所以先執(zhí)行“*P”:指針P指向的是數(shù)組的首地址,因此*p=1;再加8得9。
48.B
49.A解析:本程序中用了兩層for循環(huán),外層循環(huán)是控制人數(shù),循環(huán)一次是求一個人的成績和,然后除以4得到平均成績。每個人的成績總和一開始時都必須清0,否則就會出現(xiàn)后面人的總成績越來越大?!皊um=0.0”;應在外層循環(huán)中。
50.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y)該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和小并讓它們指向了變量a和b,調用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和,r的值是7,8和7。所以,B選項為所選。
51.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標出一個執(zhí)行的起點,當符合某個case時,程序就從該case所標出的起點處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項C不正確,應該選擇D。
52.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
53.D解析:swapl(a,a+1)是將a,a+1的地址進行傳遞,運行swapl以后,a[0],a[1]的值不發(fā)生改變,而swap2(&b[0],&b[1])是將兩個指針所指的元素進行傳遞,運行swap2后,b[0]與b[1]的值互換。
54.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
55.D解析:在本題中指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。
56.C
57.A解析:程序中首先以字符串常量定義并初始化了一個字符數(shù)組a,此時數(shù)組a包含5個元素{'1','2','3','4','\\0'},然后定義了一個變量t,并初始化為0。接下來是一個for循環(huán),循環(huán)變量i從0開始每次遞增2,循環(huán)條件a[i]是一個數(shù)字字符。因為a[0]、a[2]分別是數(shù)字字符'1'、'3'而a[4]不是,所以循環(huán)體執(zhí)行了兩次,第一次執(zhí)行前t為0,執(zhí)行后t=10*t+a[i]-'0'=10*0+'1'-'0'=1,所以第二次執(zhí)行結果為t=10*t+a[i]-'0'=10*1+'3'-'0'=13。程序運行后的輸出結果是13,本題選A。
58.D解析:本題中,關系R與S的表格框架不同,R是二元關系,S是三元關系。而在并∪、交∩、差-運算中,都要求參加運算的兩個關系具有相同的屬性名表,其運算結果也與它們具有相同的屬性名,即表框架相同。兩個不同框架的關系可以做笛卡爾積×運算。
59.C解析:本題的考查點是根據(jù)程序寫出數(shù)學函數(shù)關系。題中的兩個判斷語句實際上指出了y取值的條件,即是當x大于零時y取1;當x小于零時y取0;當x等于零時y值不變,為-1。
60.C解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第—個字符必須是字母或下劃線。大寫字母和小寫字母被認為是兩個不同的字符,用戶在定義標識符時應做到“見名知意”,且不允許使用關鍵字作標識符。
61.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調用關系。構成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
62.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結構與物理存取方法。
63.A依據(jù)fun函數(shù),可知其要實現(xiàn)的功能是將S中第(t+1)個元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)x,最后輸出x數(shù)組。
64.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經講過了,比如數(shù)組元素a[0],可以用表達式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式。(p+2)來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商用電腦購買合同
- 酒店租房協(xié)議合同范本
- 建筑幕墻勞務分包合同
- 舊房拆除補償合同樣本
- 解除采購合同約定
- 權威版勞務分包合同范本
- 洗車服務加盟合同模板
- 擠塑板購銷合同書
- 汽車質押貸款合同范本
- 集裝箱物流成本分析服務合同
- 哈薩克斯坦勞動法中文版
- 環(huán)境科學統(tǒng)計與建模方法-南京大學中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 安師大環(huán)境土壤學課件05土壤水
- 壓力管道驗收資料表格
- 2023年康復醫(yī)學考試重點復習資料
- 《憶讀書》教學課件
- 動力觸探技術規(guī)定
- 國際結算期末考試試卷及答案
- 如何贏得大學生創(chuàng)新創(chuàng)業(yè)大賽智慧樹知到答案章節(jié)測試2023年哈爾濱工程大學
- 瞳孔觀察PPT演示課件
- 人工智能智慧樹知到答案章節(jié)測試2023年復旦大學
評論
0/150
提交評論