版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
b說明:
1、原先的少部分題目有錯,請用紅色的部分替換掉;
2、如果紅色部分有文字“刪除該行”,就直接刪除該行;
第一章C語言的基礎知識
第一節(jié)對C語言的初步認識
習題
1.下列敘述中錯誤的是B
A)任何一個C程序都必須有且僅有一個main函數(shù),C語言總是
從main函數(shù)開始執(zhí)行。
B)C語言中的變量,可以先使用后定義。
C)所有的C語言語句最后都必須有一個分號
D)C程序書寫格式自由,語句可以從任,列開始書寫,一行內(nèi)
可以寫多個語句。
第二節(jié)熟悉VisualC++
習題
1.C語言源程序名的后綴是B
A).exeB).cC).obj
D).cp
2.下列敘述中錯誤的是D
A)計算機不能直接執(zhí)行用C語言編寫的源程序
B)C程序經(jīng)C編譯后,生成后綴為.obj的文件是一個二進制文
件
C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一
個二進制文件
D)后綴為.obj和.exe的二進制文件都可以直接運行
3.用C語言編寫的代碼程序B
A)可立即執(zhí)行B)是一個源程序
C)經(jīng)過編譯即可執(zhí)行D)經(jīng)過編譯解釋才能執(zhí)行
第三節(jié)標識符
習題
1.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符
中的是B
A)大寫字母B)連接符C)數(shù)字字符D)下劃線
2.以下選項中不合法的標識符是C
A)printB)FORC)&aD)_00
3.以下敘述中錯誤的是A
A)用戶所定義的標識符允許使用關鍵字
B)用戶所定義的標識符應盡量做到“見名知意”
C)用戶所定義的標識符必須以字母或下劃線開頭
D)用戶定義的標識符中,大、小寫字母代表不同標識
4.可在C程序中用作用戶標識符的一組標識符是A
A)andB)DateC)Hi
D)case
_2007y-m-dDr.Tom
Bigl
5.以下不合法的用戶標識符是C
A)j2_KEYB)DoubleC)4d
D)_8_
6.以下不能定義為用戶標識符的是D
A)MainB)_0C)JntD)sizeof
7.下列選項中,不能用作標識符的是D
A)_1234_B)_1_2C)int_2_D)
2_int_
8.以下4組用戶定義標識符中,全部合法的一組是A
A)_mainB)IfC)txtD)int
enclude-maxREALk_2
sinturbo3COM_001
第四節(jié)數(shù)制轉換
習題
1.十進制整數(shù)360的八進制為,十六進制為
550168
第五節(jié)整數(shù)和實數(shù)
習題
1.以下選項中正確的整型常量是C
A)10110BB)0386C)OXffaD)
x2a2
2.以下關于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中
正確的是D
A)均占4個字節(jié)B)根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)
C)由用戶自己定義D)由C語言編譯系統(tǒng)決定
3.以下選項中不屬于C語言的類型的是D
A)signedshortintB)unsignedlongint
C)unsignedintD)longshort
4.以下選項中合法的實型常數(shù)是C
A)5E2.0B)E-3C).2E0D)1.3E
5.以下選項中,不能作為合法常量的是B
A)1.234e04B)1.234e0.4C)1.234e+4
D)1.234e0
6.以下選項中可作為C語言合法常量的是A
A)-80.B)-080C)-8el.OD)-80.0e
7.以下符合C語言語法的實型常量是C
A)1.2E0.5B)3.14.159EC).5E-3D)
E15
8.以下不合法的數(shù)值常量是C
A)OilB)leiC)8.0E0.5D)
Oxabcd
9.以下選項中,合法的一組C語言數(shù)值常量是B
A)0285e-3-OxfB)12.OXa234.5e0
C).1774c1.5OXa23D)0x8A10,0003.e
10.下列定義變量的語句錯誤的是D
A)int_int;B)doubleint_;C)longFor;D)float
US$;
第六節(jié)算術表達式與賦值表達式
習題
1.表達式3.6—5/2+1.2+5%2的值是D
A)4.3B)4.8C)3.3D)3.8
2.設有定義:floatx=123.4567;,則執(zhí)行以下語句后輸出的結果
是o123.46
printf("%f\n",(int)(x*100+0.5)/100.0);
3.設有定義:floata=2,b=4,h=3;,以下C語言表達式與代數(shù)式X
h計算結果不相符的是B
A)(a+b)*h/2B)(l/2)*(a+b)*h
C)(a+b)*h*l/2D)h/2*(a+b)
第七節(jié)自加自減運算符、逗號表達式
習題
1.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為
o3
2.設有定義:intk=O;,以下選項的4個表達式中與其他3個表達
式的值不相同的是A
A)k++B)k+=lC)++k
D)k+1
3.有以下程序B
main()
(
charal='M',a2='m';
printf("%c\n",(al,a2));
)
以下敘述中正確的是
A)程序輸出大寫字母MB)程序輸出小寫字母m
C)格式說明符不足,編譯出錯D)程序運行時產(chǎn)生出錯信息
4.有以下程序:B
main()
{inta=O,b=O;
a=10;/*給a賦值
b=20;給b賦值*/
printf("a+b=%d\n",a+b);/*輸出計算結果*/
程序運行后的結果是
A)a+b=30B)a+b=10C)30D)程序出
錯
第八節(jié)字符
習題
1.以下選項中不屬于字符常量的是()oB
A),CB)"C"C)'O'D)'\072'
2.已知字母A的ASCH代碼值為65,若變量kk為char型,以
下不能正確判斷出kk中的值為大寫字母的表達式是()。B
A)kk>='A'&&kk<='Z'B)!(kk>='A'IIkk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z'D)kk>=48&&kk<91
3.已知字符A的ASCH代碼值是65,字符變量cl的值是A,c2
的值是D。執(zhí)行語句printf("%d,%d”,cl,c2-2);后,輸出結果是
()oC
A)A,BB)A,68C)65,66D)65,
68
4.以Q5)以下合法的字符型常量是
A)'\x13'B)'\018'C)'65'D)'\n'
5.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是
97,以下不能將變量c中大寫字母轉換為對應小寫字母的語句是
()oD
A)c=c-'Z'+'z'B)c=c+32
C)c=c-'A'+'a'D)c='A'+c-'a'
第九節(jié)位運算
習題
1.變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中
的數(shù)據(jù)用二進制表示的形式是11110000。若要求將a的高4位取
反,低4位不變,所要執(zhí)行的運算是A
A)aAbB)albC)a&bD)a?4
2.有以下程序
#include<stdio.h>
main()
(
inta=l,b=2,c=3,x;
x=(aAb)&c;printf("%d\n",x);
)
程序的運行結果是D
A)0B)1C)2D)3
3.有以下程序
main()
unsignedchara=2,b=4,c=5,d;
d=alb;d&=c;printf("%d\n",d);
)
程序運行后的輸出結果是B
A)3B)4C)5D)6
4.若變量已正確定義,則以下語句的輸出結果是()0B
s=32;s-=32;printf("%d",s);
A)-1B)0C)1D)32
5.設有以下語句
inta=l,b=2,c;
c=aA(b?2);
執(zhí)行后,c的值為D
A)6B)7C)8D)9
第二章數(shù)據(jù)輸出與輸入
第一節(jié)第二節(jié)數(shù)據(jù)輸出2節(jié)合在一起只有1個課件
習題
1.有以下程序段
charch;
intk;
ch='a';
k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);
已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸
出結果是D
A)因變量類型與格式描述符的類型不匹配輸出無定值
B)輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C)a,97,12k=12
D)a,97,k=12
2.若變量已正確定義,有以下程序段刪除該題
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其輸出結果是B
A)程序段有語法錯B)3,5,3C)3,5,5
D)3,5,7
3.有以下程序,其中%11表示按無符號整數(shù)輸出
main()
unsignedshortx=0xFFFF;/*x的初值為十六進制數(shù)*/
printf("%u\n",x);
程序運行后的輸出結果是B
A)-1B)65535C)32767
D)OXFFFF
4.以下敘述中不正確的是A
A)調用printf函數(shù)時,必須要有輸出項
B)使用putchar函數(shù)時,必須在之前包含頭文件stdio.h
C)在C語言中,整數(shù)可以以十進制、八進制或十六進制的形式
輸出
D)使用putchar函數(shù)可以不要輸出項
5.設有以下程序
main()
(
intc=35;printf("%d",c&c);
)
程序運行后的輸出結果是C
A)0B)70C)35D)53
6.以下程序運行后的輸出結果是o88
main()
intx=0210;printf("%X\n",x);
)
第三節(jié)數(shù)據(jù)輸入
習題
1.以下程序運行時若從鍵盤輸入:102030〈回車>。輸出結
果是一。A
#include<stdio.h>
main()
(
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d,%d,%d",i,j,k);
)
A)10,30,0B)10,20,30C)0,0,0
D)程序出錯
2.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤
輸入:B33〈回車>。輸出結果是A
#include"stdio.h"
main()
chara,b;
a=getchar();scanf("%d",&b);
a=a-A+0;
b=b*2;
printf("%c%c",a,b);
A)程序段有語法錯B)IBC)165D)1b
3.有以下程序
main()
intm=0256,n=256;
printf("%o%o\n",m,n);
程序運行后的輸出結果是()o
A)02560400B)0256256C)256400D)
400400
4.有以下程序
main()
inta=666,b=888;
printf("%d\n",a,b);
程序運行后的輸出結果是()oB
A)錯誤信息B)666C)888D)
666,888
5.設有以下程序
main()
(
intx=102,y=012;
printf("%2d,%d\n",x,y);
)
執(zhí)行后輸出結果是C
A)10,01B)02,12C)102,10
D)02,10
6.執(zhí)行以下程序時輸入1234567<CR>,則輸出結果是。
#include<stdio.h>
main()
(
inta=l,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
)
第三章選擇結構
第一節(jié)關系運算與邏輯運算
習題
1.已知字母A的ASCH代碼值為65,若變量kk為char型,以
下不能正確判斷出kk中的值為大寫字母的表達式是B
A)kk>='A'&&kk<='Z'B)!(kk>='A'II
kk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z'D)
isalpha(kk)&&(kk<91)
2.當變量c的值不為2、4、6時,值也為“真”的表達式是B
A)(c==2)II(c==4)II(c==6)B)
(c>=2&&c<=6)II(c!=3)II(c!=5)
C)(c>=2&&c<=6)&&!(c%2)D)
(c>=2&&c<=6)&&(c%2!=1)
3.以下選項中,當x為大于1的奇數(shù)時,值為。的表達式D
A)x%2==lB)x/2C)x%2!=0D)
x%2==0
4.以下關于邏輯運算符兩側運算對象的敘述中正確的是()。
D
A)只能是整數(shù)。和1B)只能是整數(shù)0
或非。整數(shù)
C)可以是結構體類型的數(shù)據(jù)D)可以是任意合
法的表達式
5.設有定義:intk=l,m=2;floatf=7;,則以下選項中錯誤的表達
式是C
A)k=k>=kB)-k++C)k%int(f)
D)k>=f>=m
6.設有定義:inta=2,b=3,c=4;,則以下選項中值為。的表達式是
A
A)(!a==l)&&(!b==O)B)(!a==l)ll(!b==O)
C)a&&bD)all(b+b)&&(c-a)
第二節(jié)if語句
習題
1.若變量已正確定義,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其輸出結果是B
A)程序段有語法錯B)3,5,3C)3,5,5
D)3,5,7
2.當把以下4個表達式用作if語句的控制表達式時,有一個選
項與其他3個選項含義不同,這個選項是D
A)k%2B)k%2==lC)(k%2)!=0
D)!k%2==l
3.下列條件語句中,功能與其他語句不同的是D
A)if(a)printf("%d\n",x);elseprintf("%d\n",y);
B)if(a==O)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);
D)if(a==O)printf("%d\n",x);elseprintf("%d\n",y);
4.設變量x和y均已正確定義并賦值,以下if語句中,在編譯
時將產(chǎn)生錯誤信息的是C
A)if(x++);B)if(x>y&y!=O);
C)if(x>y)x--D)if(y<0){;}
elsey++:elsex++;
第三節(jié)嵌套的if語句
習題
1.在嵌套使用if語句時,C語言規(guī)定else總是C
A)和之前與其具有相同縮進位置的if配對B)和之前與其
最近的if配對
C)和之前與其最近的且不帶else的if配對D)和之前的第
一個if配對
2.有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-l>=d)==l)
printf("%d\n",d+l);
else
printf("%d\n",d+2)
)
執(zhí)行后輸出結果是D
A)2B)3C)4D)編譯時有
錯,無結果
3.以下程序的輸出結果是C
main()
{inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
)
A)5B)4C)6D)不確定
第四節(jié)條件表達式、switch語句、goto語句
習題
1.以下程序段中與語句k=a>b?(b>c?l:0):0;功能等價的是A
A)if((a>b)&&(b>c))k=l;B)if((a>b)ll(b>c))
k=l;
elsek=0;elsek=0;
C)if(a<=b)k=0;D)if(a>b)k=l;
elseif(b<=c)k=l;elseif(b>c)k=l;
elsek=0;
2.下列敘述中正確的是D
A)beak語句只能用于switch
B)在switch語句中必須使用default
C)break語句必須與switch語句中的case配對使用
D)在switch語句中,不一定使用break語句
3.有以下程序段B
intk=0,a=l,b=2,c=3;
k=a<b?b:a;k=k>c?c:k;
執(zhí)行該程序段后,k的值是
A)3B)2C)1D)0
4.有以下程序D
#include<stdio.h>
main()
(
intx=l,y=O,a=O,b=O;
switch(x)
(
case1:
switch(y)
(
case0:a++;break;
case1:b++;break;
case2:a++;b++;break;
case3:a++;b++;
)
printf("a=%d,b=%d\n",a,b);
)
程序的運行結果是
A)a=l,b=OB)a=2,b=2C)a=l,b=l
D)a=2,b=l
5.以下敘述中正確的是C
A)break語句只能用于switch語句題中
B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所
有循環(huán)
C)break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
6.有以下程序
main()
(
intk=5,n=0;
do
switch(k)
{case1:case3:n+=l;break;
default:n=O;k—;
case2:case4:n+=2;k—;break;
)
printf("%d”,n);
}while(k>0&&n<5);
)
程序運行后的輸出結果是
A)235B)0235C)02356
D)2345
第四章循環(huán)結構
第一節(jié)while語句
習題
1.有以下程序
main()
{inty=10;
while(y—);printf("y=%d\n",y);
)
程序執(zhí)行后的輸出結果是B
A)y=0B)y=-lC)y=lD)while構
成無限循環(huán)
2.有以下程序
main()
(
intk=5;
while(-k)printf("%d",k-=3);
printf("\n");
)
執(zhí)行后的輸出結果是A
A)1B)2C)4D)死循環(huán)
第二節(jié)do-while語句
習題
1.若變量已正確定義,有以下程序段
i=0;
do
printf("%d,",i);
while(i++);
printf("%d\n",i)
其輸出結果是B
A)0,0B)0,1C)1,1
D)程序進入無限循環(huán)
2.有以下程序段D
intn,t=l,s=O;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!=n);
為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應該是
A)任意正奇數(shù)B)任意負偶數(shù)C)任意正偶數(shù)
D)任意負奇數(shù)
3.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如,若
輸入135,則輸出531,請?zhí)羁?。n/=10
#include<stdio.h>
main()
(
intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
(
s=n%10;printf("%d",s);
_____,
}while(n!=0);
printf("\n");
第三節(jié)for語句
習題
1.有以下程序
#include<stdio.h>
main()
(
intx=8;
for(;x>0;x—)
(
if(x%3)
(
printf("%d,",x-);
continue;
)
printf("%d,",-x);
)
)
程序的運行結果是D
A)7,4,2B)8,7,5,2C)9,7,6,4D)8,
5,4,2
2.以下不構成無限循環(huán)的語句或者語句組是A
A)n=0;B)n=0;
do{++n;}while(n<=0);while(l){n++;}
C)n=10;D)for(n=0,i=l;;i++)n+=i;
while(n);{n-;}
第四節(jié)循環(huán)結構的嵌套
習題
1.有以下程序
main()
(
inti,n=O;
for(i=2;i<5;i++)
(
do
(
if(i%3)continue;
n++;
}while(!i);
n++;
)
printf("n=%d\n",n);
程序執(zhí)行后的輸出結果是D
A)n=5B)n=2C)n=3D)
n=4
2.有以下程序
main()
(
inti,j,x=O;
for(i=0;i<2;i++)
(
x++;
for(j=0;j<=3;j++)
(
if(j%2)continue;
x++;
)
X++;
)
printf("x=%d\n",x);
)
程序執(zhí)行后的輸出結果是B
A)x=4B)x=8C)x=6
D)x=12
3.下面程序的功能是輸出以下形式的金字塔圖案
*
***
main()
(
inti,j;
for(i=l;i<=4;i++)
(
for(j=l;j<=4-i;j++)printf("");
for(j=l;j<=;j++)printf("*");
printf("\n");
)
)
在下劃線處應填入的是B
A)iB)2*i-lC)2*i+l
D)i+2
第五節(jié)循環(huán)結構的分析方法
習題
1.以下程序段中的變量已正確定義
for(i=0;j<4;i++,i++)
for(k=l;k<3;k++);printf("*");
程序段的輸出結果是()D
A)B)****C)**D)*
第五章函數(shù)
第一節(jié)函數(shù)的定義、庫函數(shù)
習題
1.在C語言中,函數(shù)返回值的類型最終取決于A
A)函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B)return語句中表達式值的類型
C)調用函數(shù)時主函數(shù)所傳遞的實參類型
D)函數(shù)定義時形參的類型
2.有以下函數(shù)
intfun(char*s)
(
char*t=s;
while(*t++);
return(t-s);
)
該函數(shù)的功能是B
A)比較兩個字符的大小B)計算s所指字符串
占用內(nèi)存字節(jié)的個數(shù)
C)計算s所指字符串的長度D)將?s所指字符串復制
到字符串t中
3.程序中對fun函數(shù)有如下說明C
void*fun();
此說明的含義是
A)fun函數(shù)無返回值
B)fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型
C)fun函數(shù)的返回值是無值型的指針類型
D)指針fun指向一個函數(shù),該函數(shù)無返回值
第二節(jié)函數(shù)的調用與函數(shù)說明
習題
1.有以下程序
#include<stdio.h>
intf(intx)
(
inty;
if(x==0llx==l)return(3);
y=x*x-f(x-2);
returny;
main()
intz;
z=f(3);
printf("%d\n",z);
)
程序的運行結果是C
A)0B)9C)6D)8
2.以下敘述中錯誤的是C
A)改變函數(shù)形參的值,不會改變對應實參的值
B)函數(shù)可以返回地址值
C)可以在函數(shù)內(nèi)部定義函數(shù)
D)調用sin函數(shù)需要包含頭文件math.h
3.若程序中定義了以下函數(shù)
doublemyadd(doublea,doubleb)
(
return(a+b);
)
并將其放在調用語句之后,則在調用之前應進行函數(shù)聲明,以下
選項中錯誤的是A
A)doublemyadd(doublea,b);B)double
myadd(double,double);
C)doublemyadd(doubleb,doublea);D)double
myadd(doublex,doubley);
第三節(jié)函數(shù)的數(shù)據(jù)傳遞
習題
1.有以下程序
voidf(intv,intw)
(
intt;
t=v;v=w;w=t;
)
main()
(
intx=l,y=3,z=2;
if(x>y)
f(x,y);
elseif(y>z)
f(y,z);
else
f(x,z);
printf("%d,%d,%d\n",x,y,z);
執(zhí)行后輸出結果是c
A)1,2,3B)3,1,2C)1,3,2D)
2,3,1
2.以下程序的輸出結果是_________o13
#include<stdio.h>
voidfun(intx)
(
if(x/2>0)
fun(x/2);
printf("%d",x);
)
main()
(
fun(3);
printf("\n");
)
第六章指針
第一節(jié)變量的地址和指針
習題
1.以下敘述中錯誤的是C
A)改變函數(shù)形參的值,不會改變對應實參的值
B)函數(shù)可以返回地址值
C)可以給指針變量賦一個整數(shù)作為地址值
D)當在程序的開頭包含文件stdio.h時,可以給指針變量賦NULL
2.以下定義語句中正確的是D
A)inta=b=0;B)char
'A'=65+l,b='b';
C)floata=l,*b=&a,*c=&b;D)double
a=0.0,b=l.l;
3.設已有定義:floatx;則以下對指針變量p進行定義且賦初值
的語句中正確的是D
A)float*p=1024;B)
int*p=(floatx);
C)floatp=&x;D)float
*P=&x;
第二節(jié)指針變量賦值及運算
習題
1.設有定義:intn=0,*p=&n,**q=&p;,則以下選項中,正確的
賦值語句是D
A)p=l;B)*q=2;C)q=p;
D)*p=5;
2.有以下程序
main()
inta=l,b=3,c=5;
int*pl=&a,*p2=&b,*p=&c;
*p=*pl*(*p2);
printf("%d\n",c);
)
執(zhí)行后的輸出結果是C
A)1B)2C)3
D)4
3.設有定義:intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與
n2=nl;語句等價的是A
A)*p=*q;B)p=q;C)*p=&nl;
D)p=*q;
4.有以下程序
#include<stdio.h>
main()
(
intn,*p=NULL;
*p=&n;
printf("Inputn:");scanf("%d",&p);
printf("outputn:");printf("%d\n",p);
)
該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處
錯誤,以下語句正確的是A
A)intn,*p=NULL;B)*p=&n;
C)scanf("%d",&p)D)printf("%d\n",p);
第三節(jié)函數(shù)之間地址值的傳遞
習題
1.以下程序的功能是:利用指針指向3個整型變量,并通過指
針運算找出3個數(shù)中的最大值,輸出到屏幕上,請?zhí)羁?*pmax=x;
(或者max=x)
main()
(
intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;
py=&y;
pz=&z;
pmax=&max;
if(*pmax<*py)
*pmax=*py;
if(*pmax<*pz)
*pmax=*pz;
printf("max=%d\n",max);
)
2.voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
)
執(zhí)行后輸出的結果是。84
3.以下程序的輸出結果是_________o35
#include<stdio.h>
voidswap(int*a,int*b)
(
int*t;
t=a;a=b;b=t;
main()
inti=3,j=5,*p=&i,*q=&j;
swap(p,q);
printf("%d%d\n",*p,*q);
第七章數(shù)組
第一節(jié)一維數(shù)組
習題
1.有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
當執(zhí)行上述程序段,從鍵盤上輸入555667777abe后,y的值為
B
A)55566.0B)566.0C)7777.0
D)566777.0
2.有以下程序
main()
(
charch[]="uvwxyz",*pc;
pc=ch;printf("%c\n",*(pc+5));
程序運行后的輸出結果是A
A)zB)0C)元素ch[5]地址D)字
符y的地址
3.有以下程序
#include<stdio.h>
main()
(
ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++)c[s[i]]++;
for(i=l;i<5;i++)printf("%d",c[i]);
printf("\n");
)
程序的運行結果是C
A)1234B)2344C)4332
D)1123
第二節(jié)二維數(shù)組
習題
1.以下錯誤的定義語句是C
A)intX[][3]={{0},{1},{1,2,3));
B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3});
C)intX[4][]={{123},{1,2,3},{1,2,3},{1,2,3});
D)intx[][3]={l,2,3,4);
2.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的
是D
A)a[2][!l]B)a[2][3]C)a[0][3]D)
a[l>2][!l]
3.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組
的第10個元素是B
A)a[0][4]B)a[l][3]C)a[0][3]
D)a[l][4]
第三節(jié)數(shù)組應用舉例
習題
1.有以下程序
main()
{inti,t[][3]={9,8,7,6,5,4,3,2,l};
for(i=0;i<3;i++)
printf("%d",t[2-i][i]);
)
程序執(zhí)行后的輸出結果是B
A)753B)357C)369
D)751
2.有以下程序
main()
inta[4][4]={{l,4,3,2,),{8,6,5,7,},{3,7,2,5,),{4,8,6,l,}},i,k,t;
for(i=0;i<3;i++)
for(k=i+i;k<4;k++)
if(a[i][i]<a[k][k])
{t=a[i][i];
a[i][i]=a[k][k];
a[k][k]=t;
)
For(i=0;i<4;i++)
printf("%d,",a[O][i]);
)
程序運行后的輸出結果是B
A)6,2,1,1,B)6,4,3,2,C)1,1,2,6,
D)2,3,4,6,
3.有以下程序
main()
(
inta[4][4]={{lA3,2,),{8,6,5,7,},{3,7,2,5,},{4,8,6,l,}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+l;k<4;k++)
if(a[j][i]>a[k][i])
{t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)
printf("%d,",a[i皿);
)
程序運行后的輸出結果是A
A)1,2,5,7,B)8,7,3,1,C)4,7,5,2,
D)1,6,2,1,
第八章字符串
第一節(jié)字符串與字符串數(shù)組
習題
1.以下關于字符串的敘述正確的是D
A)C語言中有字符串類型的常量和變量
B)兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較
C)可以用關系運算符對字符串的大小進行比較
D)空串一定比空格打頭的字符串小
2.以下正確的字符串常量是D
A)"\\\"B)'abc'C)OlympicGames
D)""
3.設有如下程序段A
chars[20]="Bejing",*p;
P=S;
則執(zhí)行P=S;語句后,以下敘述正確的是
A)可以用*p表示s[0]
B)s數(shù)組中元素的個數(shù)和p所指字符串長度相等
C)s和p都是指針變量
D)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
4.以下能正確定義字符串的語句是D
A)charstr[]={'\064'};B)charstr="\x43";
C)charstr=";D)charstr[]="\O";
第二節(jié)字符串的輸入輸出
習題
1.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)
是B
A)scanf()B)getchar()C)gets()
D)getc()
2.有以下程序
#include<stdio.h>
voidfun(char*a,char*b)
(
while(*a=='*')a++;
while(*b=*a){b++;a++;}
main()
char*s="****a*b*****,t[80];
fun(s,t);puts(t);
)
程序的運行結果是C
A)*****a*bB)a*bC)a*b****
D)ab
第三節(jié)對字符串的操作
習題
1.若有定義:char*x="abcdefghV;,以下選項中正確運用了strcpy
函數(shù)的是D
A)chary[10];strcpy(y,x[4]);
B)chary[10];strcpy(++y,&x[l]);
C)chary[10],*s;strcpy(s=y+5,x);
D)chary[10],*s;strcpy(s=y+l,x+l);
2.有以下程序
#include<stdio.h>
main()
charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde"
strcat(p,r);
strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
)
程序運行后的輸出結果是
A)9B)6C)11
D)7
3.有以下程序
#include<stdio.h>
voidf(charp[][10],intn)/*字符串從小到大排序*/
(
chart[10];inti,j;
for(i=0;i<9;i++)改成for(i=0;i<n-l;i++)
for(j=i+l;j<10;j++)改成for(j=i+l;j<n;j++)
if(strcmp(p[i],p[j])>0)
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[i],t);改成strcpy(p[j],t);
main()
charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(P,5);
printf("%d\n",strlen(p[O]));
)
程序運行后的輸出結果是D改成C
A)2B)4C)6
D)3
第九章文件
第一節(jié)文件的基礎知識
習題
1.以下敘述中正確的是D
A)C語言中文件是流式文件,因此只能順序存取數(shù)據(jù)
B)打開一個已存在的文件進行了寫操作后,原有文件中的全部
數(shù)據(jù)必定被覆蓋
C)在個程序中當對文件進行了寫操作后,必須先關閉該文件
然后再打開,才能讀到第1個數(shù)據(jù)
D)當對文件的讀(寫)操作完成之后,應關閉文件,否則可能導致數(shù)
據(jù)丟失
2.以下敘述中錯誤的是C
A)C語言中對二進制文件的訪問速度比文本文件快
B)C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)
C)語句FILEfp;定義了一個名為fp的文件指針
D)C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
第二節(jié)文件的操作
習題
1.以下敘述中錯誤的是B
A)gets函數(shù)用于從終端讀入字符串
B)getchar函數(shù)用于從磁盤文件讀入字符
C)fputs函數(shù)用于把字符串輸出到文件
D)fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
2.讀取二進制文件的函數(shù)調用形式為:fread(buffer,size,count,fp);,
其中buffer代表的是C
A),個文件指針,指向待讀取的文件
B)一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C)一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址
D)一個內(nèi)存塊的字節(jié)數(shù)
3.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則
函數(shù)feof(fp)的返回值為B
A)EOFB)非0值C)0
D)NULL
第三節(jié)文件例題
習題
1.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);
語句的作用是使位置指針從文件尾向前移2*sizeof(int)字節(jié))
#include<stdio.h>
main()
(
FILE*fp;inti,a[4]={l,2,3,4),b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到
變量b中*/
fclose(fp);
printf("%d\n",b);
)
執(zhí)行后輸出結果是D
A)2B)1C)4
D)3
2.有以下程序
#include<stdio.h>
main()
(
FILE*fp;intk,n,a[6]={l,2,3,4,5,6};
fp=fopen("d2.dat","w");
fprintf(fp,"%d%d%d\n",a[0],a[l],a[2]);fprintf(fp,
"%d%d%d\n",a[3],a[4],a[5]);
fclose(fp);
fp=fopen("d2.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);
)
程序運行后的輸出結果是D
A)12B)14C)1234
D)123456
3.有以下程序
#include<stido.h>
main()
(
FILE*fp;inta[10]={l,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d,",a[i]);
)
程序的運行結果是D
A)l,2,3,0,0,0,0,0,0,0,B)
1,2,3,1,23,0,0,0,0,
C)123,0,0,0,0,123,0,0,0,0,D)
1,2,3,0,0,1,23,0,0,
第十章對C語言的深入討論
第一節(jié)用戶定義類型、編譯預處理
習題
1.以下關于typedef的敘述錯誤的是A
A)用typedef可以增加新類型
B)typedef只是將已存在的類型用一個新的名字來代表
C)用typedef可以為各種類型說明一個新名,但不能用來為變量
說明一個新名
D)用typedef為類型說明一個新名,通常可以增加程序的可讀性
2.以下敘述中錯誤的是D
A)在程序中凡是以“祥”開始的語句行都是預處理命令行
B)預處理命令行的最后不能以分號表示結束
C)#defineMAX是合法的宏定義命令行
D)C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的
3.若程序中有宏定義行:#defineN100,則以下敘述中正確
的是B
A)宏定義行中定義了標識符N的值為整數(shù)100
B)在編譯程序對C源程序進行預處理時用100替換標識符N
C)對C源程序進行編譯時用100替換標識符N
D)在運行時用100替換標識符N
第二節(jié)標識符的作用域和存儲分類
習題
1.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲
類型是A
A)auto和registerB)extern和register
C)auto和staticD)static和register
2.有以下程序:
fun(intx,inty)
staticintm=0,i=2;
i+=m+l;m=i+x+y;returnm;
main()
(
intj=l,m=l,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
)
執(zhí)行后的輸出結果是B
A)5,5B)5,11C)11,11D)11,5
3.有以下程序
inta=4;
intf(intn)
(
intt=0;
staticinta=5;
if(n%2){inta=6;t+=a++;}
else{inta=7;t+=a++;}
returnt+a++;
main()
ints=a,i=O;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);
)
程序運行后的輸出結果是B
A)24B)28C)32D)36
第三節(jié)動態(tài)存儲分配
習題
1.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)
使P指向一個雙精度型的動態(tài)存儲單元
op=(double*)malloc(sizeof(double))
2.以下程序中給指針p分配3個double型動態(tài)內(nèi)存單元,請?zhí)?/p>
空。3*sizeof(double)
#include<stdlib.h>
main()
(
double*p;
p=(double*)calloc();
p[0]=1.5;
p[l]=2.5;
P⑵=3.5;
printfC4%f%f%f\n,,,p[0],p[l],p[2]);
3.以下程序的輸出結果是o40
#include<stdlib.h>
main()
(
char*sl,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*sl=15;
*s2=20;
m=*sl+*s2;
printf(u%d\n,,,m);
)
第四節(jié)main函數(shù)的參數(shù)與函數(shù)指針
習題
1.設有定義語句int(*f)(int);,則以下敘述正確的是B
A)f是基類型為int的指針變量。
B)f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參。
C)f是指向int類型一維數(shù)組的指針變量。
D)f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址。
2.有以下程序:
intadd(inta,intb){return(a+b);}
main()
(
intk,(*f)(),a=5,b=10;
f=add;
)
則以下函數(shù)調用語句錯誤的是C
A)k=(*f)(a,b);B)k=add(a,b);
C)k=*f(a,b);D)k=f(a,b);
3.有以下程序
floatfl(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{
float(*pl)(float),(*p2)(float),(*t)(float),yl,y2;
pl=fl;
p2=f2;
yl=p2(pl(2.0));
t=pl;pl=p2;p2=t;
y2=p2(pl(2.0));
printf(z,%3.Of,%3.Of\n”,yl,y2);
)
程序運行后的輸出結果是A
A)8,16B)8,8C)16,16
D)4,8
第五節(jié)函數(shù)的遞歸調用與對C語言的補充說明
習題
1.有以下程序:
fun(intx)
(
intp;
if(x==0llx==l)return(3);
p=x-fun(x-2);
returnp;
)
main()
(
printf("%d\n",fun(7));
執(zhí)行后的輸出結果是C
A)7B)3C)2D)0
2.有以下程序
intfun(intn)
(
if(n==l)
return1;
else
return(n+fun(n-l));
)
main()
(
intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
)
程序執(zhí)行時,給變量x輸入10,程序的輸出結果是A
A)55B)54C)65
D)45
3.有以下程序
#include<stdio.h>
voidfun(intn,int*p)
intfl,f2;
if(n==llln==2)
*p=l;
else
(
fun(n-l,&fl);
fun(n-2,&f2);
*p=fl+f2;
)
)
main()
(
ints;
fun(3,&s);
printf("%d\n",s);
)
程序的運行結果是A
A)2B)3C)4
D)5
4.以下敘述中正確的是()。B
A)C語言程序將從源程序中第一個函數(shù)開始執(zhí)行。
B)可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序將
從此開始執(zhí)行。
OC語言規(guī)定必須用main作為主函數(shù)名,程序將從此開始執(zhí)行,
在此結束。
D)main可作為用戶標識符,用以命名任意一個函數(shù)作為主函數(shù)。
第十一章結構體與共用體
第節(jié)結構體
習題
1.有以下程序段
typedefstructnode{intdata;structnode*next;}*NODE;
NODEp;
以下敘述正確的是C
A)p是指向structnode結構變量的指針的指針。
B)NODEp;語句出錯。
C)p是指向structnode結構變量的指針。
D)p是structnode結構變量。
2.以下結構體類型說明和變量定義中正確的是A
A)typedefstructB)structREC
{intn;charc;}REC;{intn;charc;};
RECtl,t2;RECtl,t2;
C)typedefstructREC;D)struct
{intn=0;charc-A';}tl,t2;{intn;charc;}RECtl,t2;
3.有以下程序
#include<stdio.h>
structtt
{intx;structtt*y;}*p;
structtta[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
(
inti;
P=a;
for(i=l;i<=2;i++)
(
printf("%d,",p->x);
p=p->y;
)
)
程序的運行結果是D
A)20,30,B)30,17,C)15,30,
D)20,15,
4.有以程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
STUb={"Zhao";m',85.0,90.0};inti;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
)
main()
(
STUc={"Qian",'p',95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[l]);
)
程序的運行結果是A
A)Qian
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)培訓中的團隊凝聚力培養(yǎng)與音樂游戲
- 商業(yè)思維在學生時間管理中的應用
- 2025中國航天科工集團第十研究院校園招聘593人高頻重點提升(共500題)附帶答案詳解
- 2025中國科學院紫金山天文臺人才公開招聘6人(江蘇南京市第2期)高頻重點提升(共500題)附帶答案詳解
- 2025中國石化江蘇油田分公司畢業(yè)生招聘10人高頻重點提升(共500題)附帶答案詳解
- 2025中國電信股份限公司數(shù)字智能科技分公司社會招聘21人高頻重點提升(共500題)附帶答案詳解
- 2025中國電信安全公司社會招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國核工業(yè)集團限公司校園招聘7000人高頻重點提升(共500題)附帶答案詳解
- 2025中國兵器裝備集團限公司總部招聘5人(北京)高頻重點提升(共500題)附帶答案詳解
- 2025中化學國際工程限公司招聘32人高頻重點提升(共500題)附帶答案詳解
- 楊功旭主任運用六經(jīng)辨證治療肩周炎的學術經(jīng)驗及用藥規(guī)律
- 電力工程監(jiān)理實施細則
- 基于費托合成的天然氣制合成油工藝技術綜述
- 常見抗痛風藥物課件整理
- 2023年高考真題-地理(浙江卷)含答案
- 人員招聘與培訓實務期末復習資料
- kv桿塔防腐施工組織設計
- 外國文學智慧樹知到答案章節(jié)測試2023年山東師范大學
- 醫(yī)院侵害未成年人案件強制報告制度培訓課件
- 版管井及輕型井點降水施工方案
- YY/T 0506.6-2009病人、醫(yī)護人員和器械用手術單、手術衣和潔凈服第6部分:阻濕態(tài)微生物穿透試驗方法
評論
0/150
提交評論