![C語言程序設計基礎考試題庫(含答案)_第1頁](http://file4.renrendoc.com/view/2c2e31180ec3bf532c459a57bd2053e6/2c2e31180ec3bf532c459a57bd2053e61.gif)
![C語言程序設計基礎考試題庫(含答案)_第2頁](http://file4.renrendoc.com/view/2c2e31180ec3bf532c459a57bd2053e6/2c2e31180ec3bf532c459a57bd2053e62.gif)
![C語言程序設計基礎考試題庫(含答案)_第3頁](http://file4.renrendoc.com/view/2c2e31180ec3bf532c459a57bd2053e6/2c2e31180ec3bf532c459a57bd2053e63.gif)
![C語言程序設計基礎考試題庫(含答案)_第4頁](http://file4.renrendoc.com/view/2c2e31180ec3bf532c459a57bd2053e6/2c2e31180ec3bf532c459a57bd2053e64.gif)
![C語言程序設計基礎考試題庫(含答案)_第5頁](http://file4.renrendoc.com/view/2c2e31180ec3bf532c459a57bd2053e6/2c2e31180ec3bf532c459a57bd2053e65.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE209C語言程序設計基礎考試題庫(含答案)一、單選題1.在一個以h為頭的單循環(huán)鏈表中,p指針指向鏈尾的條件是()A、p.next=hB、p.next=NULLC、p.next.next=hD、p.data=-1答案:A解析:循環(huán)鏈表的末尾結點指針指向頭結點2.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(“%d,%d\n”,k,m);}程序運行的結果是()。A、00B、01C、10D、11答案:C解析:判斷k時只要兩個表達式有一個為真其就為1,n=b>a結果為1,所以k值為1,m=a<b結果為0,所以k和m的值為1和0。3.若有定義inta=1,b=2,c=3,d=4,則表達式a<b?a:c<d?a:d的結果為()。A、4B、3C、2D、1答案:A解析:a<b?a:c<d?a:d是一個嵌套的三目運算a<b?a:(c<d?a:d),c<d為真右邊括號里返回值為1,則表達式變?yōu)閍<b?a:1,此表達式返回值為a,值為1。4.int類型變量在內(nèi)存中占用四個字節(jié),其有定義:intx[10]={0,2,4};那么數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是()。A、3B、10C、12D、40答案:D解析:int型變量占四個字節(jié),長度為10的int型數(shù)組占用內(nèi)存為10*4=40。5.關于文件,下列描述中錯誤的是()A、二進制文件打開后可以先讀文件的末尾,而順序文件不可以B、在程序結束時,應當用fclose()函數(shù)關閉已打開的文件C、在利用fread()函數(shù)從二進制文件中讀取數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中的所有元素讀入數(shù)據(jù)D、不可以用FILE定義指向二進制文件指針答案:D解析:文本文件和二進制文件的文件指針都是用FILE定義的6.關于C語言中的棧,下列描述中正確的是()A、順序存儲的線性結構B、鏈式存儲的非線性結構C、限制存取點的線性結構D、限制存儲點的非線性結構答案:D解析:棧是線性結構,它可以有不同的實現(xiàn)結構,且是限制存儲點的。7.下列語言中不屬于計算機語言的三大類的是()。A、機器語言B、匯編語言C、腳本語言D、高級語言答案:C解析:計算機語言有很多種類,根據(jù)功能和實現(xiàn)方式的不同大致可分為三大類,即機器語言、匯編語言和高級語言。8.在執(zhí)行intarr[][3]={1,2,3,4,5,6}:語句后,arr[1][0]的值為()A、4B、1C、2D、5答案:D解析:該二維數(shù)組表示的是2行3列的一個二維數(shù)組,arr[1][0]表示的是第2行第1列上的元素,即4。9.C語言可執(zhí)行程序的開始執(zhí)行點是A、程序中第一條可執(zhí)行語句B、程序中第一個函數(shù)C、程序中的main函數(shù)D、包含文件的第一個函數(shù)答案:C解析:程序總是從main函數(shù)開始執(zhí)行10.C語言中決定函數(shù)返回值的類型的是()。A、return語句中的表達式類型B、調(diào)用函數(shù)的主調(diào)函數(shù)類型C、調(diào)用函數(shù)時臨時D、定義函數(shù)時所指定的函數(shù)類型答案:D解析:函數(shù)的返回值取決于定義函數(shù)時指定的返回值類型11.在C語言中,如果在一個函數(shù)的復合語句中定義了一個變量,則該變量()A、只在該復合語句中有效,在該復合語句外無效B、在該函數(shù)中任何位置都有效C、在本程序的原文件范圍內(nèi)均有效D、此定義方法錯誤,其變量為非法變量答案:D解析:1、2與3錯:函數(shù)復合語句中定義的變量在該復合語句中引用;但如果函數(shù)含有該變量,則在函數(shù)中可以引用該變量4、對:在C++中在復合語句中定義變量為合法,但在C語言中是非法的12.下面程序的輸出結果是()。voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、3B、4C、1D、2答案:A解析:首先p指向數(shù)組a的首地址,也就是a[0]的地址;然后p+2指向a[2]的地址,那么*(p+2)獲取的是a[2]的值。13.以下選項中,與k=n++;完全等價的語句是A、k=n;n=n+1;B、n=n+1;k=n;C、k=++n;D、k+=n+1;答案:A解析:如果運算符放在操作符的后面則是先進行賦值運算,再進行自增或自減。14.為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與()組成配對關系。A、縮排位置相同的ifB、在其之前未配對的ifC、在其之前尚未配對的最近的ifD、同一行上的if答案:C解析:C語言規(guī)定else總是與在其之前尚未配對的最近的if組成配對關系。15.已知整型變量a=13和b=6,則a&b和a^b的值分別是()。A、413B、411C、111D、113答案:B解析:a的值轉換成二進制數(shù)是1101,b的值轉換成二進制數(shù)是110,a&b的值是100,轉換成十進制數(shù)是4;a^b的值是1011,轉換成十進制數(shù)是11。16.在宏定義A、單精度數(shù)B、雙精度數(shù)C、常量D、字符串答案:D解析:宏定義是最常用的預處理功能之一,它用于將一個標識符定義為一個字符串。這樣,在源程序被編譯器處理之前,預處理器會將標識符替換成所定義的字符串。17.設整型變量m,n,a,b,c,d均為1,執(zhí)行(m=a>b)&&(n=c>d)后,m,n的值是。A、0,0B、0,1C、1,0D、1,1答案:B解析:m=a>b結果為假,則m的值為0,n=c>d結果為假,n的值為0。18.運行以下程序后,如果從鍵盤上輸入china#,那么輸出結果為()。#include<stdio.h>voidmain(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'0':v2++;}printf("%d,%d\n",v1,v2);}A、2,0B、5,0C、5,5D、2,5答案:C解析:輸入“c”時,運行default和case'0'的代碼;輸入“h”時,運行case'h'、default和case'0'的代碼;輸入“i”時,運行default和case'0'的代碼;輸入“n”時,運行default和case'0'的代碼;輸入“a”時,運行case'a'、case'h'、default和case'0'的代碼。19.以下敘述不正確的是A、一個C源程序可由一個或多個函數(shù)組成B、一個C源程序必須包含一個main函數(shù)C、C程序的基本組成單位是函數(shù)D、在C程序中,注釋說明只能位于一條語句的后面答案:D20.若有以下定義,則正確的語句是()。uniondata{inti;charc;floatf;}a;intn;A、c=5;B、a={2,'a',1.2};C、printf("%d\n",a);D、n=a;答案:C21.關于字符型變量的定義,下列選項正確的是()。A、charch=a;B、charch='a';C、charch="a";D、charch=\a;答案:B解析:字符型變量的值要用一對英文半角格式的單引號('')把字符括起來。22.下列標識符,不合法的是()。A、abcB、_dC、123D、e1答案:C解析:123不是合法的標識符,標識符不能以數(shù)字開頭。23.下列關于指針說法的選項中,正確的是()A、指針是用來存儲變量值的類型B、指針一旦定義就不能再指向別的變量C、指針當中存儲的是變量的內(nèi)存地址D、指針一旦定義必須要指向某一個變量答案:C解析:指針中存儲的不是變量本身的值,而是變量的內(nèi)存地址24.當全局變量與局部變量重名時,那么在調(diào)用時()A、局部變量會被屏蔽B、全局變量會被屏蔽C、都不會調(diào)用,系統(tǒng)會報錯D、會調(diào)用兩次,先調(diào)用局部變量,再調(diào)用全局變量答案:B解析:當局部變量與全局變量重名時,全局變量會被屏蔽。25.C語言提供的合法的數(shù)據(jù)類型關鍵字是______?A、DoubleB、floatC、integerD、Char答案:B解析:A和D中第一個字母大寫,不正確,選項C是PASCAL中的整型關鍵字,不是C的關鍵字。26.關于二維數(shù)組,下列選項能正確定義并賦初值的是()A、intn=5,b[n][n];B、inta[1][2]={{1},{3}};C、intc[2][]={{1,2},{3,4}};D、inta[3][2]={{1,2},{3,4}};答案:D解析:1錯:數(shù)組下標中必須含有常量;2錯:初始項值太多;3錯:列下標不可以省略;27.若有定義:charstr1[10]="aaaaaaa";charstr2[10]="bbbbb";將字符串str2連接到str1,則下列描述中正確的是()A、strcat(str1,str2)可以將字符串str2連接到str1中B、strncat(str1,str2,strlen(str2))可以將字符串str2連接到str1中C、strncat(str1,str2,2)可以將字符串str2的前兩個字符連接到str1中D、strncat(str1,str2,4)可以將字符串str2的前四個字符連接到str1中答案:C解析:連接字符串要考慮內(nèi)存溢出問題28.若有定義和語句:chars[10];s="abcd";printf("%s\n",s);那么結果是(以下u代表空格)()。A、輸出abcdB、輸出aC、輸出abcduuuuuD、編譯不通過答案:D解析:字符數(shù)組不能直接賦入字符串,只能在初始化時賦入字符串。29.下述共同體變量x所占用內(nèi)存字節(jié)數(shù)為()。unionexp{inti;floatj;doublek;}x;A、16個B、12個C、8個D、隨機而定答案:C解析:共用體占內(nèi)存大小是根據(jù)其成員最大占內(nèi)存大小來決定的。30.C語言中,運算對象必須是整型數(shù)的運算符是()。A、%B、/C、+和-D、*答案:A解析:取模運算的操作對象必須是整數(shù)。31.若有定義:structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Andam",16};則下列選項中能輸出M的語句是()A、printf("%c\n",class[3].name);B、printf("%c\n",class[3].name[1]);C、printf("%c\n",class[2].name[1]);D、printf("%c\n",class[2].name[0]);答案:D解析:class[2]找到{"Mary",18}這個結構體元素;.name訪問結構體中的成員;name[0]是name數(shù)組中的第一個元素,即M字符。32.在C程序中,可把整型數(shù)以二進制形式存放到文件中的函數(shù)是()A、fprintf()函數(shù)B、fread()函數(shù)C、fwrite()函數(shù)D、fputc()函數(shù)答案:A解析:fprintf()函數(shù)可以格式化字符串并打印到文件里。33.關于數(shù)組的定義與初始化,下列哪一項是錯誤的()A、intarr[5]={1,2,3,4,5};B、intarr[]={1,2,3,4,5};C、intarr[5]={1,2,3};D、intarr[5]={1,2,3,4,5,6};答案:D解析:選項4初始化值大于數(shù)組的大小。34.C語言規(guī)定,程序中各函數(shù)之間()。A、既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用B、不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用C、允許直接遞歸調(diào)用不允許間接遞歸調(diào)用D、不允許直接遞歸調(diào)用允許間接遞歸調(diào)用答案:A解析:各程序間既可以直接調(diào)用也可以間接調(diào)用。35.const可以修飾指針與變量,下列描述中錯誤的是()A、常量指針的作用是使當前指針所指向變量的值在程序運行時不能被修改;B、指針常量其實就是一個常量,該指針存放的地址不能被改變;C、指向常量的常指針就是指針所指向的地址不能被改變,且所指向地址中的值也不能被改變;D、const限定符不能同時修飾指針與變量答案:D解析:指向常量的常指針就是const限定符同時修飾指針與變量36.關于二進制的說法中,正確的是()A、所有的信息只能用二進制代碼來表示B、計算機一般都使用二進制代碼,用它的某種信息編碼方式來表示信息C、ASCII是計算機用來表示文字符號的唯一一種二進制代碼D、漢字在計算機內(nèi)使用漢字國標碼來表示,不使用二進制編碼答案:B解析:計算機不只是能用二進制,還有八進制、十進制、十六進制。37.請選出合法的C語言賦值語句。()A、a=b=58B、i++;C、a=58,b=58D、k=int(a+b);答案:B解析:選項1和3缺少符號“;”,選項4中int的調(diào)用方式錯誤。38.請閱讀下面的程序,選擇正確的輸出結果。()voidmain(){printf("%d",null);}A、0B、變量無定義C、-1D、1答案:B解析:表示空的常量是NULL,而不是null。39.若有定義,int*f();則下列描述中正確的是()A、一個用于指向整型數(shù)據(jù)的指針變量B、一個用于指向一維數(shù)組的指針C、一個用于指向函數(shù)的指針變量D、一個返回值為指針型的函數(shù)名答案:D解析:nt(*f)()是一個指向函數(shù)的指針,int*f()是一個返回值類型為指針的函數(shù)。40.設有如下定義:structsk{inta;floatb;}data,*p;若有p=&data;則對data中成員a的引用正確的是()A、(*p).data.aB、(*p).aC、p->data.aD、p.data.a答案:B解析:p是指向結構體的指針,用指針引用結構體成員有兩種格式:p->成員、(*p).成員41.C語言中可處理的文件類型是()A、文本文件和數(shù)據(jù)文件B、文本文件和二進制文件C、數(shù)據(jù)文件和二進制文件D、數(shù)據(jù)代碼文件答案:B42.以下程序的輸出結果是()。A、abcdegB、bcdeC、ABCDD、EE、BCDF、E答案:D解析:space()函數(shù)的作用是將字符串str中的空格和字符“a”去除,并將剩余的字符轉換成大寫字母。43.假設x、y、z和k都是int型變量,那么執(zhí)行表達式:x=(y=4,z=16,k=32)后,x的值為()。A、4B、16C、32D、52答案:C解析:這是一個逗號表達式,返回最后一個表達式的值,即k的值。44.下面程序中,運行結果為“1,2”的是()A、#include<stdio.h>intmain(){inta=1;intb=2;printf("%d%d\n",a,b);return0;}B、#include<stdio.h>intmain(){inta=1;intb=2;printf("%d,"a);printf("%d\n",b);return0;}C、#include<stdio.h>intmain(){inta=1,b=2;printf("%d,,%d\n",a,b);return0;}D、#include<stdio.h>intmain(){inta=1,a=b=2;printf("%d,%d\n",a,b);return0;}答案:B解析:A選項ab中間沒有逗號只有空格。C選項有兩個逗號。D選項a=b=2之后a的值也是2了,所以輸出2,2。45.在C語言中,關于變量的作用域,下列描述中錯誤的是()A、局部變量只在整個函數(shù)的運行周期中有效B、全局變量的作用域為整個程序的運行周期C、當全局變量與局部變量重名時,局部變量會屏蔽掉全局變量D、全局變量會覆蓋掉所有與它重名的局部變量答案:D解析:當全局變量與局部變量重名時,全局變量會被屏蔽掉46.關于C語言中print()函數(shù)與scanf()函數(shù),下列描述中正確的是()A、printf()函數(shù)可以向任何地方輸出數(shù)據(jù)B、printf()只向控制臺輸出數(shù)據(jù)C、scanf()只能輸入英文字母和數(shù)字D、scanf()函數(shù)可以識別輸入的空格答案:B解析:printf()是向控制臺輸出的函數(shù)47.要定義一個字符串,下列選項中錯誤的是()A、chars[5]="hello";B、chars[]="hello";C、char*s="hello";D、chars[]={"h","e","l","l","o"};答案:D解析:定義字符數(shù)組,字符元素要用單引號括起來。48.下列關于八進制與十六進制的描述中,錯誤的是()。A、八進制是一種逢八進一的機制B、八進制由0-8這此符號來描述C、十六進制是一種逢十六進一的機制D、十六進制由0-9、A-F這些符號來描述答案:B解析:八進制是由0-7這八個符號來描述的。49.請讀程序:voidmain(){union{intk;chari[2];}*s,a;s=&a;s->i[0]=0x39;s->i[1]=0x38;printf("%x\n",s->k);}則上面程序的輸出結果是()。A、3839B、3938C、380039D、390038答案:A解析:由于s->i[0]和s->i[1]都是char類型,各占1個字節(jié),所以選項3和4首先排除。因為一般計算機是小端模式,低位在低字節(jié),高位在高字節(jié),所以s->i[0]的值在低位,s->i[1]的值在高位。50.C語言中,fclose()函數(shù)在表示關閉不成功時返回()A、0B、-1C、EOD、FE、非零值答案:D51.定義一個字符型變量,下列選項中正確的是()。A、charc='97'B、charc="97"C、charc=97D、charc=c答案:C解析:定義字符型變量,其值要用一對英文半角格式的單引號('')引起來,或者直接賦入字符的ASCII碼。52.下列選項中,哪個函數(shù)可以將數(shù)據(jù)以二進制形式存放到文件中()A、fprintf()B、fread()C、fwrite()D、fputc()答案:C解析:fwrite()函數(shù)是以二進制形式寫入文件53.若有以下說明和定義:voidfun(int*c){}voidmain(){int(*a)()=fun,*b(),w[10],c;}在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句是()。A、a=a(w);B、(*a)(&c);C、b=*b(w);D、fun(b);答案:B解析:指針函數(shù)的調(diào)用;54.下列選項中,關于main()函數(shù)敘述不正確的是()A、一個完整的C語言程序中,有且只能有一個main()函數(shù)B、main()函數(shù)是程序的主入口,程序總是從main()函數(shù)開始執(zhí)行C、如果沒有聲明main()函數(shù),程序將從第1行開始執(zhí)行D、main()函數(shù)可以有返回值,也可以沒有返回值答案:C解析:一個完整的C語言程序必須有且只有1個main()函數(shù),且程序總是從main()函數(shù)開始執(zhí)行,否則就會報錯。55.structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};voidmain(){p=aa;printf("%d",++p->x);printf("%d",(++p)->x);printf("%d",++(*p->y));}A、102020B、506021C、516021D、607031答案:C解析:初始化后,aa[0].x賦值為50,aa[0].y指向dt[0];aa[1].x賦值為60,aa[1].y指向dt[1];aa[2].x賦值為70,aa[2].y指向dt[2];aa[3].x賦值為80,aa[3].y指向dt[3]。++p->x是將aa[0].x自增1,返回51;(++p)->x返回aa[1].x的值,即60;++(*p->y)將aa[1].y指向的dt[1]的值自增1,返回21。56.在c語言程序中,注釋部分從哪開始,到哪結束?()A、從"("開始到")"結束B、從REM開始無結束標志C、無起始標志D、從"/*"開始,"*/"結束答案:D解析:c語言中的多行注釋從從“/*”開始,“*/”結束57.C語言中下面哪個不是條件語句?A、ifB、ifelseC、NSLogD、switch答案:C58.設a為整型變量,下列選項中不能正確表達數(shù)學關系:10<a<15()。A、10<a<15B、a==11||a==12C、a>10&&a<15D、!(a<=10)&&!(a>=15)答案:B解析:B選項中得到的a值不能使10<a<15成立。59.C語言中下面哪個不是循環(huán)語句?A、dowhileB、ifC、whileD、for答案:B60.如果要求在if后的判斷條件是a不等于0,則下列選項中能正確表達這一關系的是()。A、a<>0B、!aC、a=0D、a答案:D解析:if判斷條件的值只能是0或非0,if(a)就是if(!0)的意思。61.當輸入數(shù)據(jù):2763時,下面程序的運行結果是()。#include<stdio.h>intgbs(inta,intb){intc;a=a>0?a:-a;b=b>0?b:-b;c=a*b;if(c==0)return0;while(a!=b)if(a>b)a-=b;elseb-=a;returnc/a;}intgys(inta,intb){if(a*b==0)return0;a=a>0?a:-a;b=b>0?b:-b;while(a!=b)if(a>b)a-=b;elseb-=a;returna;}voidmain(){inta,b,c,d;scanf("%d%d",&a,&b);c=gbs(a,b);d=gys(a,b);printf("a=%db=%dgbs=%dgys=%d\n",a,b,c,d);}A、a=30b=63gbs=189gys=9B、a=27b=63gbs=190gys=10C、a=27b=63gbs=189gys=9D、a=27b=63gbs=188gys=10答案:C解析:兩個函數(shù)中,while語句結束后,a和b的值都為9。62.以下各語句或語句組中,正確的操作是。A、chars[3]="abcde";B、char*s;gets(s);C、char*s;s="abcde";D、chars[5];scanf("%s",&s);答案:C解析:字符數(shù)組可以使用字符串進行初始化,但數(shù)組長度應足夠容納該字符串,選項A不滿足要求。gets()函數(shù)用于讀取字符串,并將字符串保存到參數(shù)代表的空間中,選項B中,只定義了字符指針,沒有空間存放字符串信息。選項D定義了長度為5的字符數(shù)組,數(shù)組名稱代表數(shù)組的首地址,使用scanf()讀取字符串時,參數(shù)為數(shù)組名即可。63.當執(zhí)行下面程序且輸入:ABC時,輸出的結果是()。#include<stdio.h>#include<string.h>voidmain(){charss[10]="12345";gets(ss);printf("%s\n",ss);}A、ABCB、ABC45C、12345ABCD、ABC456789答案:A解析:gets()函數(shù)的作用是將輸入的字符串覆蓋進字符數(shù)組ss中。64.假設有程序段:intk=0;while(k=1)k++;while語句的循環(huán)次數(shù)是()。A、無限次B、有語法錯,不能執(zhí)行C、一次也不執(zhí)行D、執(zhí)行1次答案:A解析:語句k=1將k賦值為1并返回k的值,所以while語句將一直循環(huán)。65.假設有如下定義:structsk{inta;floatb;}data,*p;若有p=&data;則對data中的a域的正確引用是()。A、(*p).data.aB、(*p).aC、p->data.aD、p.data.a答案:B66.下列運算符中優(yōu)先級最高的是()。A、||B、&&C、+D、=答案:C解析:在選項中的幾個運算符中,+運算符的優(yōu)先級最高。67.C語言中數(shù)組名作為參數(shù)傳遞給函數(shù),作為實在參數(shù)的數(shù)組名被處理為()。A、該數(shù)組的長度B、該數(shù)組的元素個數(shù)C、該數(shù)組中各元素的值D、該數(shù)組的首地址答案:D解析:數(shù)組作為函數(shù)參數(shù)時,傳入的是該數(shù)組的首地址。68.關于標識符,下列選項中描述錯誤的是()。A、標識符只能由字母、數(shù)字和下劃線組成B、標識符不能以下劃線作為第一個字符C、標識符不能以數(shù)字作為第一個字符D、標識符不區(qū)分大小寫字母答案:D解析:標識符區(qū)分大小寫字母。69.若已定義x和y為double類型,則表達式x=1;y=(x+3)/2的值是()。A、1B、2C、2.00000D、2.50000答案:C解析:()的優(yōu)先級較高,先計算x+3,結果為4.0,再4.0/2結果為2.0。70.下面程序的輸出是()。voidmain(){structcmplx{intx;inty;}cnum[2]={1,3,2,7};printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}A、0B、1C、3D、6答案:D解析:初始化后,cnum[0].x賦值為1,cnum[0].y賦值為3;cnum[1].x賦值為2,cnum[1].y賦值為7。71.以下程序的輸出結果是()。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}voidmain(){printf("%ld\n",fun(3));}A、1B、2C、3D、4答案:A解析:fun()函數(shù)傳入3時,返回3-fun(2);fun()函數(shù)傳入2時,返回2。所以fun(3)返回3-2=1。72.若給定條件表達式(M)?(a++):(a--)則下列選項中和表達式M等價的是()。A、(M==0)B、(M==1)C、(M!=0)D、(M!=1)答案:C解析:三目運算符的判斷條件要求返回值是邏輯值。該題中M的返回值是邏輯值真,而在C語言中非0值都能表示邏輯值真。73.下列是多行注釋的符號是()A、//B、/C、/*D、/**/答案:D解析:單行注釋的符號為//,多行注釋的符號為/**/。74.下列程序段的輸出結果為()。inty=1;while(y--);printf("y=%d\n",y);A、y=-1B、y=0C、死循環(huán)D、y=9答案:A解析:當y—返回0時,while語句停止循環(huán),此時y=-1。75.以下程序的輸出結果是()。voidmain(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];}A、0650B、1470C、5430D、輸出值不定答案:A解析:為數(shù)組中的部分元素進行賦值時,對于沒有賦值的元素,系統(tǒng)會自動賦值為0。76.下面程序的輸出是()。typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;voidmain(){printf("%d\n",sizeof(them));}A、32B、16C、8D、24答案:B解析:共用體占內(nèi)存大小是根據(jù)其成員最大占內(nèi)存大小來決定的,共用體MYTYPE占內(nèi)存大小是sizeof(int)*4=16。77.下面程序中,合法的選項是()A、#include<stdio.h>intmain(){printf("helloworld\n");return0;}B、#include<stdio.h>intman(){printf("helloworld\n");return0;}C、#include<stdio.h>intmain(){printf("helloworld\n")return0;}D、#include<stdio.h>intmain(){print("helloworld\n");return0;}答案:A解析:B選項不是main()函數(shù),不能運行。C選項C語言中的語句以;結尾。D選項print函數(shù)不存在,所以不能正確調(diào)用。78.關于預處理,下列描述中正確的是()A、每個C程序必須在開頭使用預處理命令B、預處理命令必須位于C程序的開頭C、在C語言中,預處理命令都以<開頭D、C語言的預處理命令只能實現(xiàn)宏定義和條件編譯的功能答案:C解析:C語言的預處理命令都以<開頭79.有如下說明: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答案:B解析:選項1中,*p+9首先計算*p的值,返回1,其次計算1+9的值,返回10;選項3中,*p+=9是對a[0]進行自增運算,然后返回運算后的a[0]的值;選項4中,p+8返回返回a[8]的地址。80.下列選項中,哪一項不是C語言中的位運算符()。A、&B、||C、~D、^答案:B解析:“||”是邏輯運算符,“|”是位運算符。81.程序片段:shorti=65536;printf("%d\n",i);的輸出結果是()。A、65536B、0C、有語法錯誤,無輸出結果D、-1答案:B解析:short類型的取值范圍是-32768~32767,再加1時發(fā)生溢出,變?yōu)?。82.下列關于strstr()函數(shù)的描述,錯誤的是()A、用于在指定的字符串中查找指定的字符B、用于在指定的字符串中查找指定的子字符串C、該函數(shù)接收兩個字符指針類型的參數(shù)D、該函數(shù)若查找到子字符串則返回子字符串的指針,否則返回空指針答案:A解析:用于在指定的字符串中查找指定的子字符串83.下列選項中,哪一項不是C語言的關鍵字()。A、autoB、intC、addD、goto答案:C解析:add不是C語言的關鍵字,所以答案為選項3。84.靜態(tài)鏈表中的指針表示的是()A、內(nèi)存地址B、數(shù)組下標C、下一元素地址D、左、右結點地址答案:C解析:鏈表中的指針域存儲的是下一個元素的地址85.以下循環(huán)體的執(zhí)行次數(shù)是()。voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);}A、3B、2C、1D、0答案:C解析:首先初始化語句i=0,j=1;判斷循環(huán)條件i<=j+1返回true,執(zhí)行一次循環(huán)體;執(zhí)行語句i+=2,j--后,i=2,j=0;i<=j+1返回false。86.關于fgets()函數(shù),下列描述中正確的是()A、從文件fp中讀取長度為n的字符串存入str指向的內(nèi)存B、從文件fp中讀取長度不超過n-1的字符串存入str指向的內(nèi)存C、從文件fp中讀取n個字符存入str指向的內(nèi)存D、從str讀取至多n個字符到文件fp中答案:B解析:fgets()是從文件fp中讀取長度不超過n-1的字符串存入str指向的內(nèi)存87.在C語言中,系統(tǒng)為一個結構體變量分配的內(nèi)存是()A、各成員所需內(nèi)存量的總和B、結構體第一個成員所需的內(nèi)存量C、成員中占內(nèi)存量最大者所需的容量D、結構體中最后一個成員所需的內(nèi)存量答案:A解析:系統(tǒng)為一個結構體變量分配的內(nèi)存是各成員所需內(nèi)存量的總和。88.以下程序運行后,輸出結果是()。voidmain(){char*s="abcde";s+=2;printf("%ld\n",s);}A、cdeB、字符c的ASCLL碼值C、字符c的地址D、出錯答案:C解析:首先指針s指向字符串"abcde"的首地址,也就是字符"a"的地址;然后s+=2后,s指向字符串"cde"的首地址,也就是字符"c"的地址。89.C語言程序的基本單位是()。A、程序行B、語句C、函數(shù)D、字符答案:C解析:函數(shù)是C語言程序的基本單位90.以下程序的輸出結果是()。#include<stdio.h>voidmain(){printf("%d\n",NULL);}A、不確定的B、0C、-1D、1答案:B解析:NULL在C語言中定義為(void*)0。91.設有以下說明語句:structstu{inta;floatb;}suttype;則下面敘述不正確的是()A、struct是結構體類型的關鍵字B、structstu是用戶定義的結構體類型C、suttype是用戶定義的結構體類型名D、a和b都是結構體成員答案:B解析:stu是結構體類型,suttype是該類型的變量名92.已知字符'0'的ASCII碼值為十六進制的30,下面程序的輸出是()。voidmain(){union{unsignedcharc;unsignedinti[4];}z;z.i[0]=0x39;z.i[1]=0x36;printf("%c\n",z.c);}A、6B、9C、0D、3答案:B解析:目前大部分計算機是小端模式,即低位字節(jié)存低位數(shù)據(jù),高位字節(jié)存高位數(shù)據(jù)。所以z.i[0]在共用體z的最前端,并且值0x39被存儲在第一個字節(jié)中。z.c讀取的是共用體z第一個字節(jié)的值,即0x39,對應的字符是'9'。93.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是()A、EOFB、-1C、非零值D、NULL答案:C94.定義一個函數(shù):exce((v1,v2),(v3,v4,v5),v6);在該函數(shù)調(diào)用時,實參的個數(shù)為()個A、3B、4C、5D、6答案:A解析:(v1,v2),(v3,v4,v5)和v6一共三個實參95.有如下程序:longfib(intn){if(n>2)returnfib(n-1)+fib(n-2);elsereturn2;}voidmain(){printf("%d\n",fib(3));}該程序的輸出結果是()。A、2B、4C、6D、8答案:B解析:向fib()函數(shù)傳入3時,返回fib(1)+fib(2)的值;向fib()函數(shù)傳入1和2時,都返回2,所以fib(3)返回2+2=4。96.若程序中有下面的說明和定義:structabc{intx;chary;}structabcs1,s2;則會發(fā)生的情況是()。A、編譯出錯B、程序將順利編譯、連接、執(zhí)行C、能順利通過編譯、連接,但不能執(zhí)行D、能順利通過編譯,但連接出錯答案:A解析:結構體定義應如下所示:structabc{intx;chary;};97.sizeof(float)是()。A、一種函數(shù)調(diào)用B、一個不合法的表示形式C、一個整型表達式D、一個浮點表達式答案:C解析:sizeof是運算符,返回int類型的數(shù)據(jù)。98.關于fscanf()函數(shù),下列描述中錯誤的是()A、fscanf()函數(shù)是從流中格式化輸入B、fscanf()函數(shù)格式化輸入數(shù)據(jù)后,文件指針自動向下移到一個數(shù)據(jù)單位C、返回值為參數(shù)個數(shù)D、讀取失敗返回0答案:D解析:fscanf()讀取失敗返回-199.關于C語言中的全局變量,下列描述中正確的是()A、全局變量的作用域一定比局部變量的作用域范圍大B、靜態(tài)類別變量的生存周期貫穿于整個程序的運行期間C、函數(shù)的形參都屬于全局變量D、未在定義語句中賦初值的auto變量和static變量的初值都是隨機值答案:B解析:選項1不對:如果程序中只有一個主函數(shù),則在整個程序運行中,局部變量都在起作用;選項3不對:除了C++的引用類型參數(shù),所有函數(shù)的形參都是局部變量;選項4不對:static變量定義時就存儲地全局區(qū),初始化為0;100.關于strcmp()函數(shù),下列描述中錯誤的是()A、strcmp()函數(shù)用于比較兩個字符串的內(nèi)容是否相等B、如果兩個字符串的內(nèi)容相同,strcmp()函數(shù)返回0C、strcmp()函數(shù)是可變參數(shù)的函數(shù)D、strcmp()函數(shù)只能接收字符指針作為參數(shù),并不接收單個字符答案:C解析:strcmp()函數(shù)的參數(shù)是兩個字符串101.下列程序執(zhí)行后的輸出結果是()。#defineMA(x)x*(x-1)voidmain(){inta=1,b=2;printf("%d\n",MA(1+a+b));}A、6B、8C、10D、12答案:B解析:替換宏定義后,該程序為:#defineMA(x)x*(x-1)voidmain(){inta=1,b=2;printf("%d\n",1+a+b*(1+a+b-1));}最終輸出8。102.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()。A、1B、2C、2.0D、2.5答案:C解析:因為運算符“/”的優(yōu)先級比運算符“+”的優(yōu)先級高,所以先計算3/2,返回int型結果1。將double型數(shù)據(jù)1與int型數(shù)據(jù)1相加,返回double型結果2.0。103.為了計算s=15!(15的階乘),則s變量應定義為()。A、charB、shortC、intD、long答案:D解析:計算結果為整型數(shù)據(jù),char是字符型,不符合,而short與int類型的取值不夠大,所以用long類型來存儲。104.若定義a=3,b=4,執(zhí)行printf(“%d,%d”,(a,b),(b,a));的輸出結果為()。A、3,4B、4,3C、3,3D、4,4答案:B解析:在調(diào)用格式輸出函數(shù)的語句中,其中每個格式符對應一個輸出項,格式符d要求輸出項內(nèi)容以十進制整數(shù)形式輸出,第一個輸出項(a,b)是一個逗號表達式,該表達式的是b的值,輸出4;第二個輸出項(b,a)的值是a的值,輸出3。105.以數(shù)據(jù)塊為單位對數(shù)據(jù)進行整體讀寫時如果ptr是指向內(nèi)存中數(shù)據(jù)塊的首地址,fp是文件指針,那么數(shù)據(jù)塊中每個數(shù)據(jù)項的大小為()A、sizeof(*ptr)B、*ptrC、sizeof(ptr)D、sizeof(*fp)答案:A解析:ptr是指向數(shù)據(jù)塊的指針,*ptr才能表示整個數(shù)據(jù)塊。106.71、閱讀下面程序:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};for(i=0;i<4;i++)printf("%3d",x[i][3-i]);下列選項中哪一項是正確的輸出結果()A、15913B、161116C、471013D、481216答案:C解析:i=0時輸出x[0][3],4i=1時輸出x[1][2],7i=2時輸出x[2][1],10i=3時輸出x[3][0],13107.關于鏈表的敘述中,下列描述中錯誤的是()A、鏈表采用順序存儲,必須占用一片連續(xù)的內(nèi)存空間B、鏈表采用順序存儲,便于進行插入和刪除操作C、鏈表采用鏈接存儲,不必占用一片連續(xù)的內(nèi)存空間D、鏈表采用鏈式存儲,便于插入和刪除操作答案:B解析:順序鏈表進行插入和刪除操作后需要移動元素108.下列選項中,不屬于開發(fā)一個C語言應用程序的具體實現(xiàn)步驟的是()A、啟動開發(fā)工具B、添加源文件C、編寫代碼D、運行程序答案:A解析:在VisualStudio工具中開發(fā)一個C語言應用程序,具體實現(xiàn)步驟是新建項目、添加源文件、編寫代碼和運行程序。109.下述對C語言字符數(shù)組的描述中錯誤的是()。A、字符數(shù)組可以存放字符串B、字符數(shù)組中的字符串可以整體輸入、輸出C、可以在賦值語句中通過賦值運算符"="對字符數(shù)組整體賦值D、不可以用關系運算符對字符數(shù)組中的字符串進行比較答案:C解析:字符數(shù)組只能在初始化時才能進行整體賦值,字符數(shù)組賦值必須對數(shù)組元素依次進行賦值。110.關于棧和隊列,下列描述中正確的是()A、限制存取位置的線性結構B、順序存儲的線性結構C、鏈式存儲的線性結構D、限制存取位置的非線性結構答案:A解析:棧和隊列都是線性表,都限制存取位置111.以下選項中,不能正確賦值的是()。A、chars1[10];s1="Ctest";B、chars2[]={'C','t','e','s','t'};C、chars3[20]="Ctest";D、char*s4="Ctest\n"答案:A解析:字符數(shù)組只能在初始化時才能用等號賦入字符串。112.以下選項中合法的字符常量是()。A、"B"B、'\010'C、68D、D答案:B解析:'\010'表示ASCII碼為八進制數(shù)10的字符。113.若有函數(shù)調(diào)用語句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數(shù)調(diào)用語句中實參的個數(shù)是()。A、3B、4C、5D、6答案:A解析:a+b返回一個值,(x,y)返回一個值,fun(n+k,d,(a,b))返回一個值。114.在C語言中,若需一變量只在本文件中所有函數(shù)使用,則該變量的存儲類別是()。A、externB、registerC、autoD、static答案:D解析:static修飾全局變量時,表示該變量僅在本文件中可使用。115.若有下面的說明和定義:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;則sizeof(structtest)的值是()。A、20B、16C、14D、9答案:A解析:共用體uu占8個字節(jié);因為結構體在內(nèi)存中占位符的存在,所以結構體test中成員m2占4個字節(jié);結構體test占用內(nèi)存的大小是sizeof(int)+sizeof(char)+3+sizeof(float)+sizeof(ua)=20。116.若已定義x和y為double類型,則表達式x=1,y=x+3/2的值是()。A、1B、2C、2.0D、2.5答案:C解析:y為double類型,3/2值為1,轉換成double類型與x相加。117.以下程序的輸出結果是()。inta,b;voidfun(){a=100;b=200;}voidmain(){inta=5,b=7;fun();printf("%d%d\n",a,b);}A、100200B、57C、200100D、75答案:B解析:fun()函數(shù)改變的是全局變量的值,printf()函數(shù)輸出的是局部變量的值,fun()函數(shù)不會改變局部變量a、b的值。118.設變量a是整型,f是單精度型,i是雙精度型,則表達式10+a+i的值的數(shù)據(jù)類型是()。A、intB、floatC、doubleD、不確定答案:C解析:不同數(shù)據(jù)類型進行運算時,取值范圍小的會自動向取值范圍大的數(shù)據(jù)類型轉換。119.下列描述中不正確的是()。A、字符型數(shù)組中可以存放字符串B、可以對字符型數(shù)組進行整體輸入、輸出C、可以對整型數(shù)組進行整體輸入、輸出D、不能在賦值語句中通過賦值運算符"="對字符型數(shù)組進行整體賦值答案:C解析:整型數(shù)組只能對單個元素進行輸入輸出。120.以下程序運行后,輸出結果是()。A、49.5B、9.5C、22.0D、45.0答案:B解析:替換宏定義后該程序為:121.關于二進制,下列描述錯誤的是()。A、二進制數(shù)由數(shù)字0和1表示B、一個二進制數(shù)字0和1表示一位,八位為一個字節(jié)C、由于二進制由數(shù)值較小的0和1表示,所以只能表示一部分數(shù)據(jù)D、二進制與十進制相互轉換,不改變值的大小答案:C解析:所有的數(shù)據(jù)都可以由二進制形式表示出來。122.下列說法中正確的是()。A、在switch語句中一定要使用break語句B、在switch語句中不一定要使用break語句C、break語句是switch語句的一部分D、break只能用于switch語句中答案:B解析:break語句可以與switch語句搭配使用,但也可以不用。123.在宏定義#defineMAX30中,用宏名代替一個()A、常量B、字符串C、整數(shù)D、長整數(shù)答案:B解析:宏定義用于將一個標識符定義為一個字符串124.若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為()。A、a<>0B、!aC、a=0D、a答案:D解析:a!=0返回邏輯值真,相當于a。125.下列選項中,表示字符串末尾的結束標志是()A、'\n'B、'\r'C、'\0'D、NULL答案:C解析:字符串末尾結束標志為'\0'126.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。A、-3B、9C、-12D、6答案:C解析:a-=a*a運算后a的值是-6,a+=-6運算后a的值是-12。127.以下程序的輸出結果是()。#defineSQR(X)X*Xvoidmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}A、16B、2C、9D、1答案:B解析:替換宏定義后,該程序為:#defineSQR(X)X*Xvoidmain(){inta=16,k=2,m=1;a/=k+m*k+m/k+m*k+mprintf("d\n",a);}最終程序輸出2。128.算術運算符、賦值運算符和關系運算符的運算優(yōu)先級按從高到低依次為()。A、算術運算、賦值運算、關系運算B、算術運算、關系運算、賦值運算C、關系運算、賦值運算、算術運算D、關系運算、算術運算、賦值運算答案:B解析:在C語言中,三種運算符的算術運算符優(yōu)先級最高,賦值運算符優(yōu)先級最低。129.若變量已正確說明為float類型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦予10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是()。A、102233B、10.0,22.0,33.0C、10.022.033.0D、10;22;33答案:B解析:用scanf()讀取從鍵盤輸入的數(shù)據(jù)時,中間不能加逗號,要用空格隔開130.若有定義:structKeyWord{charKey[20];intID;}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};則printf("%c,%d\n",kw[3].Key[0],kw[3].ID);語句的輸出結果為()A、i3B、n3C、f4D、l4答案:C解析:kw[3].Key[0]是第4個元素中key數(shù)組的第1個字符即f;kw[3].ID是第4個元素中成員ID值;131.以下敘述正確的是A、在C程序中,main函數(shù)必須位于程序的最前面B、C程序的每行中只能寫一條語句C、C語言本身沒有輸入輸出語句D、在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤答案:C132.設整型變量m,n,a,b,c,d均為1,執(zhí)行(m=a>b)&&(n=c>d)后,m,n的值是。A、0,0B、0,1C、1,0D、1,1答案:B解析:m=a>b結果為假,則m的值為0,n=c>d結果為假,n的值為0。133.在16位編譯器環(huán)境下,double類型占多少字節(jié)?A、2B、4C、1D、8答案:D解析:在16位編譯器環(huán)境下,double類型占8個字節(jié)。134.根據(jù)下面的定義,能打印出字母M的語句是()。structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};A、printf("%c\n",class[3].name);B、printf("%c\n",class[3].name[1]);C、printf("%c\n",class[2].name[1]);D、printf("%c\n",class[2].name[0]);答案:D解析:初始化后,class[0].name賦值字符串"John",class[0].age賦值17;class[1].name賦值字符串"Paul",class[1].age賦值19;class[2].name賦值字符串"Mary",class[2].age賦值18;class[3].name賦值字符串"Adam",class.age賦值16。所以class[2].name[0]的值是“M”。135.下列關于表達式的描述中,錯誤的是()。A、常量和變量都是表達式B、運算符類型對應表達式的類型C、每一個表達式都有自己的值D、表達式必須以分號結尾答案:D解析:語句必須以分號結尾,表達式不是必須以分號結尾,表達可以嵌套。136.假定有以下變量定義:intk=7,x=12;那么能使值為3的表達式是()。A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)答案:D解析:選項1中返回0;選項2中返回2;選項3的效果跟選項2的一樣。137.表示關系X<=Y<=Z的C語言表達式為()。A、(X<=Y)&&(Y<=Z)B、(X<=Y)AND(Y<=Z)C、(X<=Y<=Z)D、(X<=Y)&(Y<=Z)答案:A解析:(X<=Y)表示X<=Y;(Y<=Z)表示Y<=Z;如果兩者都要成立,則使用&&運算符。138.下列關于指針變量的描述,不正確的是()A、在沒有對指針變量賦值時,指針變量的值是不確定的B、同類指針類型可以進行相減操作C、在使用沒有賦值的指針變量時,不會出現(xiàn)任何問題D、可以通過指針變量來取得它指向的變量值答案:C解析:沒有賦值的指針變量,可能指向任何地方,如果指向系統(tǒng),那么使用該指針可能導致系統(tǒng)崩潰。139.閱讀下列程序段:chars[18]="abook!";printf("%.4s\n",s);其輸出結果為()A、abook!B、abookC、aboD、a答案:C解析:"abook!"在字符數(shù)組中是按單個字符存儲的,包括空格,%.4s是輸出前四個字符。140.有以下程序:#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}voidmain(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}輸出結果是()。A、ZhangB、ZhaoC、WangD、18答案:B解析:該程序打印的是students[2].name的值。141.C語言中函數(shù)能否嵌套調(diào)用和遞歸調(diào)用?()A、二者均不可B、前者可,后者不可C、前者不可,后者可D、二者均可答案:D解析:兩者調(diào)用都可以142.若t已經(jīng)定義為double類型,則表達式:t=1,t++,t+5的值為()。A、7B、7.0C、2.0D、1.0答案:B解析:t為double類型變量,經(jīng)過一系列運算后其結果仍為double類型,該題中t先進行自增再進行t+5運算,結果為7.0d。143.若有定義:intx,y;chara,b,c;并有以下輸入數(shù)據(jù)(此處\u代表空格):1\u2\uA\uB\uC,那么能給x賦整數(shù)1,給y賦整數(shù)2,給a賦字符A,給b賦字符B,給c賦字符C的正確程序段是()。A、scanf("x=%dy=%d",&x,&y);a=getchar();b=getchar();c=getchar();B、scanf("%d%d",&x,&y);a=getchar();b=getchar();c=getchar();C、scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);D、scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);答案:D解析:空格也會作為一個字符賦給字符變量。144.C語言中,合法的長整型常數(shù)是()。A、'\t'B、"A"C、65D、A答案:A解析:選項2中,是一個字符串;選項3中,是一個整型常數(shù);選項4中,是一個變量。145.下列選項中,合法的數(shù)組定義是()。A、inta[]="string";B、inta[5]={0,1,2,3,4,5};C、chars="string";D、chara[]={0,1,2,3,4,5};答案:D解析:選項1中,不能對整型數(shù)組賦入字符串;選項2中,數(shù)組a長度為5,不能賦入6個元素;選項3中,不能對字符賦入字符串。146.下面程序的輸出是()。voidmain(){char*a="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}A、v1=4,v2=2,v3=1,v4=1B、v1=4,v2=9,v3=3,v4=1C、v1=5,v2=8,v3=6,v4=1D、v1=8,v2=8,v3=8,v4=8答案:C解析:k=0時,s[k]='1',switch語句運行case'1'、case'3'、case'2',此時v1=1,v2=1,v3=1,v4=0。k=1時,s[k]='2',switch語句運行case'2',此時v1=1,v2=2,v3=1,v4=0。k=2時,s[k]='1',switch語句運行case'1'、case'3'、case'2',此時v1=2,v2=3,v3=2,v4=0。k=3時,s[k]='3',switch語句運行case'3'、case'2',此時v1=2,v2=4,v3=3,v4=0。k=4時,s[k]='4',switch語句運行default、case'1'、case'3'、case'2',此時v1=3,v2=5,v3=4,v4=1。k=5時,s[k]='2',switch語句運行case'2',此時v1=3,v2=6,v3=4,v4=1。k=6時,s[k]='1',switch語句運行case'1'、case'3'、case'2',此時v1=4,v2=7,v3=5,v4=1。k=7時,s[k]='1',switch語句運行case'1'、case'3'、case'2',此時v1=5,v2=8,v3=6,v4=1。147.在C語言中,函數(shù)的隱含存儲類別是()。A、autoB、staticC、externD、無存儲類別答案:C解析:為簡化編程,C語言中允許在定義外部函數(shù)時省略關鍵字extern。148.對于基類型相同的兩個指針變量之間,不能進行的運算是()。A、<B、=C、+D、-答案:A149.以下說法正確的是()A、c語言程序總是從第一個函數(shù)開始執(zhí)行B、在c語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C、c語言程序總是從main()函數(shù)開始執(zhí)行D、c語言程序中的main()函數(shù)必須放在程序的開始部分答案:C解析:c語言總是從main()函數(shù)開始執(zhí)行判斷題1.sizeof運算符的功能是獲取某一數(shù)據(jù)或數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)。A、正確B、錯誤答案:A解析:為了獲取某一數(shù)據(jù)或數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù),C語言提供了sizeof運算符,使用sizeof運算符獲取數(shù)據(jù)字節(jié)數(shù)。2.指針變量實際上存儲的并不是變量的值,而是變量的內(nèi)存地址。A、正確B、錯誤答案:A解析:指針里面存儲的是變量的地址3.標識符命名可以由字母,數(shù)字,橫線,下劃線組成,可以由數(shù)字開頭。A、正確B、錯誤答案:B解析:標識符命名只能有字母,數(shù)字和下劃線組成,且數(shù)字不能開頭。4.調(diào)用fclose()函數(shù)后原有的文件指針仍然可以進行文件操作。A、正確B、錯誤答案:B解析:調(diào)用fclose()后,文件關閉,需重新打開文件才能操作。5.若有定義chars[]={"hello"};則sizeof(s)的大小為5。A、正確B、錯誤答案:B解析:sizeof(s)求數(shù)組arr大小,數(shù)組中是一個含有5個字符的字符串,但在C語言中,字符串末尾默認有\(zhòng)0,所以sizeof()求出其大小為6。6.若有定義intx=1,y=2;則表達式x==y是將y的值賦值給x。A、正確B、錯誤答案:B解析:比較運算符==是判定兩個值是否相等,而不是賦值運算。7.八進制是一種“逢八進一”的進制,它由0~8這九個符號來描述。A、正確B、錯誤答案:B解析:八進制是一種“逢八進一”的進制,它由0~7八個符號來描述。8.字符型指針用char*來定義,它不僅可以指向一個字符型常量,還可以指向一個字符串。A、正確B、錯誤答案:A解析:字符型指針用char*來定義,它不僅可以指向一個字符型常量,還可以指向一個字符串。9.因為鏈表是動態(tài)生成的,所以節(jié)點之間是斷開的。A、正確B、錯誤答案:B解析:鏈表如同一條鐵鏈一樣,一環(huán)扣一環(huán),中間是不能斷開的。10.break語句只能在循環(huán)語句中使用。A、正確B、錯誤答案:B解析:在switch條件語句和循環(huán)語句中都可以使用break語句。當它出現(xiàn)在switch條件語句中時,作用是終止某個case并跳出switch結構。當它出現(xiàn)在循環(huán)語句中,作用是跳出當前循環(huán)語句,執(zhí)行后面的代碼。11.VisualStudio系列的IDE是跨平臺的A、正確B、錯誤答案:B解析:VisualStudio內(nèi)置了windows操作系統(tǒng)的一些特性,而且微軟也沒有跨平臺的意愿。12.結構體數(shù)組有兩種方式進行初始化:先定義結構體數(shù)組類型再初始化結構體數(shù)組、在定義結構體數(shù)組的同時對結構體數(shù)組初始化。A、正確B、錯誤答案:A解析:可以采用下列兩種方式對結構體數(shù)組初始化:先定義結構體數(shù)組類型,然后初始化結構體數(shù)組;在定義結構體數(shù)組的同時,對結構體數(shù)組初始化。13.數(shù)組名的命名較為特別,它不符合標識符的命名規(guī)范。A、正確B、錯誤答案:B解析:數(shù)組名的命名同變量名相同,符合標識符的命名規(guī)范。14.關鍵字是指在編程語言里事先定義好并賦予了特殊含義的單詞,也稱作保留字。A、正確B、錯誤答案:A解析:所謂關鍵字是指在編程語言里事先定義好并賦予了特殊含義的單詞,也稱作保留字。關鍵字在程序中用于表示特殊含義,不能被隨便用作變量名、函數(shù)名等。15.操作字符串的函數(shù)strcat()與strncat()用法是相同的。A、正確B、錯誤答案:B解析:strcat()函數(shù)是將一個字符串連接到另一個字符串的后面;而strncat()函數(shù)是將一個字符串的前n個字符連接到另一個字符串的后面。16.多行注釋之間不能嵌套調(diào)用。A、正確B、錯誤答案:A解析:多行注釋之間不能相互嵌套使用,因為第一個“/*”會和第一個“*/”進行配對,而第二個“*/”則找不到匹配。17.十進制數(shù)10轉換為二進制為1010。A、正確B、錯誤答案:A解析:十進制的10轉換為二進制后是1010。18.break是跳出當前循環(huán),接著執(zhí)行循環(huán)后面的代碼。A、正確B、錯誤答案:A解析:break是跳出當前循環(huán),接著執(zhí)行循環(huán)后面的代碼。19.根據(jù)功能和實現(xiàn)方式的不同,C語言屬于高級語言()。A、正確B、錯誤答案:A解析:C語言是目前最流行、應用最廣泛的高級語言之一,也是計算機編程語言的元老。20.隱式類型轉換是指將取值范圍大的數(shù)據(jù)類型轉換為數(shù)據(jù)取值范圍小的數(shù)據(jù)類型。A、正確B、錯誤答案:B解析:不同類型的數(shù)據(jù)運算,將取值范圍小的數(shù)據(jù)類型轉換為取值范圍大的數(shù)據(jù)類型。21.若已知指向結構體變量stu的指針p,在引用結構體成員時,有三種等價的形式,即stu.成員名、*p.成員名、p->成員名。A、正確B、錯誤答案:B解析:由于優(yōu)先級的關系,*p.成員名應該改為(*p).成員名22.在C語言中,跳轉語句有break語句、goto語句和continue語句。A、正確B、錯誤答案:B解析:跳轉語句用于實現(xiàn)循環(huán)執(zhí)行過程中程序流程的跳轉,在C語言中,跳轉語句有break語句、goto語句和continue語句。23.標識符只能由字母和數(shù)字組成。A、正確B、錯誤答案:B解析:標識符只能由字母、數(shù)字和下劃線組成。標識符不能以數(shù)字作為第一個字符。標識符不能使用關鍵字。標識符區(qū)分大小寫字母,如add、Add和ADD是不同的標識符。盡量做到“見名知意”,以增加程序的可讀性,如用age表示年齡,用length表示長度等。雖然ANSIC中沒有規(guī)定標識符的長度,但建議標識符的長度不超過8個字符。24.鏈表和數(shù)組一樣都是內(nèi)存上一段連續(xù)的內(nèi)存空間。A、正確B、錯誤答案:B解析:鏈表的內(nèi)存空間是不連續(xù)的。25.結構體指針作為函數(shù)參數(shù),是將結構體的首地址傳遞給函數(shù)。A、正確B、錯誤答案:A解析:指針作為函數(shù)參數(shù),傳遞是地址,結構體指針也是一樣。26.棧是一種限定只能在一端進行插入和刪除操作的線性表,其中允許插入和刪除操作的一端稱為棧底,不允許插入和刪除操作的一端稱為棧頂。A、正確B、錯誤答案:B解析:棧是一種限定只能在一端進行插入和刪除操作的線性表,其中允許插入和刪除操作的一端稱為棧頂,不允許插入和刪除操作的一端是封閉的,稱為棧底。27.不能直接使用一個字符串常量來為一個字符數(shù)組賦值。A、正確B、錯誤答案:B解析:為了便于對字符數(shù)組進行初始化操作,可以直接使用一個字符串常量來為一個字符數(shù)組賦值。28.對文件進行單字符讀取操作的函數(shù)是fgets()。A、正確B、錯誤答案:B解析:fgets()是單行讀取操作的函數(shù)。29.continue只能用于循環(huán)語句。A、正確B、錯誤答案:B解析:continue還可以用于選擇語句。30.線性表的特點是每個元素都有一個前驅和一個后繼。A、正確B、錯誤答案:B解析:線性表如果是鏈表實現(xiàn)則對,如果是數(shù)組來實現(xiàn)的順序存儲則沒有前驅和后繼。31.在程序設計中,一組具有相同數(shù)據(jù)類型的變量集合稱為數(shù)組。A、正確B、錯誤答案:A解析:在程序設計中,使用x[0]、x[1]、x[2]……x[n]表示的一組具有相同數(shù)據(jù)類型的變量集合稱為數(shù)組x。32.鏈表中節(jié)點的下標是從1開始的。A、正確B、錯誤答案:A解析:鏈表結點也是從0開始,0下標是頭結點。33.在C語言中,邏輯表達式可以包含多個邏輯運算符。A、正確B、錯誤答案:A解析:邏輯表達式可以包含多個邏輯運算符。34.定義一個指針變量,它可以指向任何數(shù)據(jù)類型的變量。A、正確B、錯誤答案:B解析:指針變量的類型必須與它所指向的變量的數(shù)據(jù)類型保持一致。35.C語言只適用于系統(tǒng)軟件的開發(fā)()。A、正確B、錯誤答案:B解析:C語言是一種通用的、過程式的編程語言,它具有高效、靈活、可移植等優(yōu)點。在最近二十多年里,它是使用最廣泛的編程語言之一,被大量的運用在系統(tǒng)軟件與應用軟件的開發(fā)中。36.定義結構體變量有三種方式:先定義結構體類型再定義結構體變量、在定義結構體類型的同時定義結構體變量、直接定義結構體變量。A、正確B、錯誤答案:A解析:下列是定義結構體變量的三種方式:先定義結構體類型,再定義結構體變量;在定義結構體類型的同時定義結構體變量;直接定義結構體變量;37.編寫C語言程序的流程是:新建項目、添加源文件、編寫代碼、運行程序。A、正確B、錯誤答案:A解析:用VisulaStudio工具開發(fā)一個C語言應用程序的具體實現(xiàn)步驟如下:38.鏈表的常用操作有:獲取表元、插入元素、查找元素、刪除元素、釋放鏈表。A、正確B、錯誤答案:A解析:鏈表的常用操作有:獲取表元、插入元素、查找元素、刪除元素、釋放鏈表。39.一個十進制數(shù)轉換成二進制后,其值發(fā)生的改變。A、正確B、錯誤答案:B解析:十進制和二進制只是針對數(shù)字的不同表示方式,無論采用哪種方式表示一個數(shù),它的值都是一樣的。40.文件包含命令中,只能包含擴展名為.h的文件。A、正確B、錯誤答案:B解析:文件包含中文件擴展名可以是.h也可以是.cpp。41.C語言中的基本數(shù)據(jù)類型包括:整型變量、實型變量、字符型變量、枚舉類型變量。A、正確B、錯誤答案:A解析:C語言中的基本數(shù)據(jù)類型包括:整型變量、實型變量、字符型變量、枚舉類型變量。42.C語言中的注釋有兩種類型:單行注釋和多行注釋。A、正確B、錯誤答案:A解析:C語言中的注釋有兩種類型,單行注釋多行注釋43.一維數(shù)組指的是只有一個下標的數(shù)組,用來表示一組具有相同類型的數(shù)據(jù)。A、正確B、錯誤答案:A解析:一維數(shù)組指的是只有一個下標的數(shù)組,它用來表示一組具有相同類型的數(shù)據(jù)。44.數(shù)組初始化的常見方式有三種:直接對數(shù)組中的所有元素賦值、只對數(shù)組中的一部分元素賦值、對數(shù)組全部元素賦值但不指定長度。A、正確B、錯誤答案:A解析:數(shù)組初始化的常見的方式有三種,具體如下:直接對數(shù)組中的所有元素賦值只對數(shù)組中的一部分元素賦值對數(shù)組全部元素賦值,但不指定長度45.由于二維數(shù)組名也是一個數(shù)組指針,所以可以通過數(shù)組名以數(shù)組指針的形式來訪問數(shù)組中的元素。A、正確B、錯誤答案:A解析:由于二維數(shù)組名也是一個數(shù)組指針,所以可以通過數(shù)組名以數(shù)組指針的形式來訪問數(shù)組中的元素。46.由二進制編碼構成的語言是機器語言。A、正確B、錯誤答案:A解析:能被計算機直接識別的并執(zhí)行的二進制代碼語言稱為機器語言。47.不同數(shù)據(jù)類型的數(shù)據(jù)不能進行相互運算。A、正確B、錯誤答案:B解析:不同數(shù)據(jù)類型進行運算,可以先轉換成相同數(shù)據(jù)類型再進行運算。48.運算符“&&”表示與操作,如果左邊為假,那么右邊表達式將進行運算。A、正確B、錯誤答案:B解析:運算符“&&”表示與操作,當且僅當運算符兩邊的表達式結果都為真時,其結果才為真,否則結果為假。如果左邊為假,那么右邊表達式是不會進行運算的。49.注釋在編譯時也會被編譯到程序中A、正確B、錯誤答案:B解析:注釋是對程序的某個功能或者某行代碼的解釋說明,它只在C語言源文件中有效,在編譯時會被編譯器忽略。50.C語言屬于機器語言。A、正確B、錯誤答案:B解析:C語言屬于高級語言。51.C語言中的數(shù)據(jù)類型可分為:基本類型、構造類型、指針類型、空類型。A、正確B、錯誤答案:A解析:C語言中的數(shù)據(jù)類型可分為4種,分別是基本類型、構造類型、指針類型、空類型。52.對于一維數(shù)組,例如intarr[3];則arr[2]表示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源儲能項目落戶保障合同
- 廚具設備購銷合同(31篇)
- 教學工作總結英語2024(32篇)
- 2023-2024學年浙江省寧波市鎮(zhèn)海中學高三下學期期中考試歷史試卷
- 2025年業(yè)務提升合作諒解協(xié)議
- 2025年供應鏈管理公司合作項目協(xié)議書
- 2025年產(chǎn)品創(chuàng)新與生產(chǎn)協(xié)作協(xié)議
- 2025年農(nóng)村醫(yī)療人員定向就業(yè)協(xié)議
- 2025年大數(shù)據(jù)項目規(guī)劃申請報告模板
- 2025年遠程醫(yī)療項目立項申請報告模板
- 2025年中國東方電氣集團有限公司招聘筆試參考題庫含答案解析
- 2024-2025學年云南省昆明市盤龍區(qū)三年級(上)期末數(shù)學試卷(含答案)
- 物業(yè)公司行政人事部職責
- 模具檢測知識培訓
- 醫(yī)療健康行業(yè)保密免責協(xié)議書
- 2025年七年級下冊道德與法治主要知識點
- 第一課走進人工智能 說課稿 2023-2024學年浙教版(2023)初中信息技術八年級下冊
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 人教版《道德與法治》二年級下冊全冊優(yōu)秀課件
- SMT車間溫濕度點檢記錄表
- 罩極電機檢驗細則
評論
0/150
提交評論