版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一、C語言概述練習(xí)題
選擇
I.一個(gè)c程序的執(zhí)行是從。
A)本程序的main函數(shù)開始,到main函數(shù)結(jié)束
B)本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束
C)本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束
D)本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束
2.以下敘述不正確的是o
A)一個(gè)C源程序必須包含一個(gè)main函數(shù)B)一個(gè)C源程序可由一個(gè)
或多個(gè)函數(shù)組成
0C程序的基本組成單位是函數(shù)D)在C程序中,注釋說明只能位于
一條語句的后面
3.以下敘述正確的是o
A)在對(duì)一個(gè)C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤
B)在C程序中,main函數(shù)必須位于程序的最前面
0C語言本身沒有輸入輸出語句D)C程序的每行中只能寫
一條語句
4.一個(gè)C語言程序是由。
A)一個(gè)主程序和若干個(gè)子程序組成B)函數(shù)組成C)若干過程組
成D)若干子程序組成
5.計(jì)算機(jī)高級(jí)語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述
中正確的是0
A)C語言程序僅可以編譯執(zhí)行B)C語言程序僅可以解釋執(zhí)行
C)C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D)以上說法都不對(duì)
6.以下敘述中錯(cuò)誤的是o
A)C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的B)用C語言編寫的
源程序不能直接在計(jì)算機(jī)上運(yùn)行
C)通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行
D)在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe
文件
7.以下敘述正確的是o
A)C語言程序是由過程和函數(shù)組成的B)C語言函數(shù)可以嵌套調(diào)用,例
如:fun(fun(x))
0C語言函數(shù)不可以單獨(dú)編譯D)C語言中除了main函數(shù),其他函數(shù)不可
作為單獨(dú)文件形式存在
二、數(shù)據(jù)類型、運(yùn)算符與表達(dá)式
選擇.
1.若x、i、j、k都是int型變量,則計(jì)算下面表達(dá)式后,x的值為
x=(i=4,j=16,k=32)A)4B)16C)32D)
52
2.下列四組選項(xiàng)中,均不是C語言關(guān)鍵字的選項(xiàng)是
A)defineIFtypeB)getccharprintfC)includecase
scanfD)whilegopow
3.下列四組選項(xiàng)中,均是不合法的用戶標(biāo)識(shí)符的選項(xiàng)是。
A)WP0doB)b-agotointC)floatlaO_AD)
-123abcTEMP
4.下列四組選項(xiàng)中,均是合法轉(zhuǎn)義字符的選項(xiàng)是
A)'<\\,MB)、<\017,,\”'
C)''018''\f',xab'D),\\0',xlf'
5.下面不正確的字符常量是
A)"c"B)'C)''D)K
6.以下敘述不正確的是o
A)在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B)在C程序中,
MAX和max是兩個(gè)不同的變量
C)若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后,b中的值將放入a中,
而b中的值不變
D)當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量
只能輸入實(shí)型數(shù)值
7.以下敘述正確的是o
A)在C程序中,每行只能寫一條語句
B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整
型數(shù)
0在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符(字符型也可以)
D)在C程序中,無論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無誤地表示
8.已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句c2
='A'+'6'-'3'后,c2中的值為o
A)DB)68C)不確定的值D)C
9.sizeof(float)是。
A)一個(gè)雙精度型表達(dá)式B)一個(gè)整型表達(dá)式C)一種函數(shù)表達(dá)式
D)一個(gè)不合法的表達(dá)式
10.設(shè)C語言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),則unsignedint型
數(shù)據(jù)的取值范圍為o
A)0~255B)0-32767C)0-65535D)0?
2147483647
11.設(shè)有說明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值
的數(shù)據(jù)類型為。
A)floatB)charC)intD)double
12.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是o
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)
D)(y=6,y+1,x=y,x+1)
13.下列變量定義中合法的是。
A)short_a=015;B)doubleb=e2.5;C)longdo=0xfdaL;D)float
2_and=le-3;
14.有以下程序
ftinclude<stdio.h>
main()
{intx=011;
printf("%d\n”,++x);
}程序運(yùn)行后的輸出結(jié)果是O
A)12B)llC)10D)9
填空
1.若有以下定義,intm=5,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=m*=y后的y值是【1】。
-16
2.在C語言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),則int型數(shù)據(jù)的取
值范圍為[2]0-32768?32767
3.若s是int型變量,且s=6,則下面表達(dá)式s%2+(s+l)%2的值為【3】。
1
4.若a是int型變量,則下面表達(dá)式(a=4*5,a*2),a+6的值為【4】。26
5.若x和a均是int型變量,則計(jì)算表達(dá)式(1)后的x值為【5],計(jì)算
表達(dá)式(2)后的x值為【6】。4
12
(1)x=(a=4,6*2)(2)x=a=4,6*2
6.若a是int型變量,則計(jì)算下面表達(dá)式a=25/3%3后a的值為【7】。2
7.若x和n均是int型變量,且x和n的初值均為5,則計(jì)算表達(dá)式后x
的值為[8],n的值為[9]o106
x+=n++〃若改為x+=++n則計(jì)算后X為,n為116
8.若有定義:charc=、01(T;則變量c中包含的字符個(gè)數(shù)為[10]01
9.若有定義:intx=3,y=2;floata=2.5,b=3.5;則下面表達(dá)式
(x+y)%2+(int)a/(int)b的值為[11]01
10.已知字母a的ASCH碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)
式ch='a'+'8'-'3'的值為【12】。f
三、簡單的C程序設(shè)計(jì)
選擇
1.putchar函數(shù)可以向終端輸出一個(gè)。
A)整型變量表達(dá)式B)實(shí)型變量值C)字符串D)字符
或字符型變量值
2.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5歹I」。
如果字符串長度大于5,則輸出按方式B;如果字符串長度小
于5,則輸出按方式C。
A)從左起輸出該字符串,右補(bǔ)空格B)按原字符長從左向右全部輸出
C)右對(duì)齊輸出該字符串,左補(bǔ)空格D)輸出錯(cuò)誤信息
3.閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<CR>(注:<CR>表示
回車),則正確的輸出結(jié)果為。
main()
{intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d\n”,x+y+z);
}A)x+y+z=48B)x+y+z=35C)x+z=35D)不
確定值
4.根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式
應(yīng)該為。
main()
{charchi,ch2,ch3;
輸入語句
printf("%c%%c”,chi,ch2,ch3);
}輸出形式:ABC輸入形
式:ABC
A)scanf(“%c%c%c",&chl,&ch2,&ch3);B)
scanf("%c,%c,%c”,&chl,&ch2,&ch3);
C)scanf(“祝%c%cw,&chl,&ch2,&ch3);D)
scanf(<<%c%cn,&chl,&ch2,&ch3);
5.已知ch是字符型變量,下面不正確的賦值語句是o
A)ch='a'+'b';B)ch='\0';C)ch=7+9;D)
ch=5+9;
6.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是o
A)一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B)結(jié)構(gòu)化程序使用goto語句會(huì)很便捷
C)在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
D)由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
7.有以下程序
ttinclude<stdio.h>
main()
{intal,a2;charcl,c2;
scanf("%d%c%d%c",&al,&cl,&a2,&c2);
printf(u%d,%c,%d,%cv,al,cl,a2,c2);
}若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,
c2的值為字符b,程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是(以
下_代表空格,<CR>代表回車)
A)12a34b<CR>B)12_a_34_b<CR>C)12,a,34,b<CR>
D)12_a34_b〈CR>
填空
1.以下的輸出結(jié)果是[1]oc:decn20,oct=170,hex=78,ASCII=x
main()
{charc=,x';
printf(<<c:dec=%d,oct=%o,hex=%x,ASCH=%c\n”,c,c,c,c);
}
2.以下的輸出結(jié)果是[2】o
main()
{intx=l,y=2;
printf("x=%dy=%d*sum*=%d\n”,x,y,x+y);
printf('TOSquaredis:%d\n”,10*10);}
x=ly=2*sum*=3
10Squaredis:100
3.假設(shè)變量a和b均為整型,以下語句可以不借助任何變量把a(bǔ)、b中的
值進(jìn)行交換。請(qǐng)?zhí)羁铡?/p>
a+=[3];b=a-[4];a~=[5];bbb
4.若x為int型變量,則執(zhí)行以下語句x=7;x+=x-=x+x;后的x值為【6】。
-14
5.有一輸入語句scanf("%d”,k);則不能使float類型變量k得到正確
數(shù)值的原因是[7]和【8】o格式控制符應(yīng)為%£,;變量k前缺少&
四、邏輯運(yùn)算與判斷選取控制
選擇
1.邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型0
A)只能是0和1B)只能是0或非0正數(shù)
C)只能是整型或字符型數(shù)據(jù)D)可以是任何類型的數(shù)據(jù)
2.判斷char型變量ch是否為大寫字母的正確表達(dá)式是。
A)'A'<=ch<='Z'B)(ch>='A')&(ch<='Z')
C)(ch>=,A')&&(ch<=<Z,)D)('A'<=ch)AND(<Z,>=ch)
3.若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表
達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是0
A)A%2==1B)!(A%2==0)C)!(A%2)D)A%2
4.設(shè)有:inta=l,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c〉d)后n的值
為o
A)1B)2C)3D)4
5.以下程序的運(yùn)行結(jié)果是o
main()
{inta,b,d=241;
a=d/100%9;
b=(-l)&&(-l);
printf("%d,%d”,a,b);
}A)6,1B)2,1C)6,0D)
2,0
6.已知intx=10,y=20,z=30;以下語句執(zhí)行后x,y,z的值是。
if(x>y)z=x;x=y;y=z;
A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10
D)x=20,y=30,z=20
7.以下程序的運(yùn)行結(jié)果是o
main()
{intm=5;
if(m++>5)
printf("%d\n",m);
else;
printf("%d\n”,m-);
}A)4B)5C)6
D)7
8.若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是。
main()
{intx,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
A)4B)3C)2D)
0
9.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述
中正確的是0
A)必須是邏輯值B)必須是整數(shù)值C)必須是正數(shù)D)可以是任意合法的
數(shù)值
10.有以下程序
ttinclude<stdio.h>
main()
{inta=l,b=0;
if(!a)b++;
elseif(a==0)if(a)b+=2;
elseb+=3;
printf("%d\n",b);
}程序運(yùn)行后的輸出結(jié)果是oA)0B)1C)2
D)3
11.有以下程序
ttinclude<stdio.h>
main()
{intc=0,k;
for(k=l;k<3;k++)
switch(k)
{default:c+=k;
case2:c++;break;
case4:c+=2;break;
)
printf("%d\n",c);
}程序運(yùn)行后的輸出結(jié)果是oA)3B)5
C)7D)9
五、循環(huán)控制
選擇1.設(shè)有程序段intk=10;while(k=0)k=k-l;這下面描述中正
確的是?
a)while循環(huán)執(zhí)行10次b)循環(huán)是無限循環(huán)
c)循環(huán)體語句一次也不執(zhí)行d)循環(huán)體語句執(zhí)行一次
2.語句while(!E);中的表達(dá)式!E等價(jià)于.a)E==0b)E!=l
c)E!=0d)E==l
3.下面程序段的運(yùn)行結(jié)果是c.循環(huán)次數(shù)為b.
intn=0;while(n++<=2);printf("%d",n);a)2
b)3c)4d)有語法錯(cuò)
//若改為while(++n<=2);printf("%d",n);結(jié)果又如何?
4.下面程序的運(yùn)行結(jié)果是.
#include<stdio.h>
main()
{intnum=0;
while(num<=2)
{num++;
printf(,/%d\n,/,num);
)
)
a)1b)1c)1d)1
222
33
4
5.以下程序段.
x=-l;do{x=x*x;}while(!x);
a)是死循環(huán)b)循環(huán)執(zhí)行二次c)循環(huán)執(zhí)行一次d)有語法
錯(cuò)誤
6.若有如下語句
intx=3;
do{printf("%d\n",x~=2);}while(!(一x));
則上面程序段.a)輸出的是1b)輸出的是1和-2c)輸
出的是3和0d)是死循環(huán)
7.下面程序的運(yùn)行結(jié)果是.
#include<stdio.h>
main()
{inty=10;
do{y一;}while(一y);
printf("%d\n”,y-);
}a)-lb)lc)8d)0
8.若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是.
for(i=2;i==0;)printfi-);
a)無限次b)0次c)l次d)2次
9.執(zhí)行語句for(i=l;i++<4;);后變量i的值是.
a)3b)4c)5d)不定
10.以下正確的描述是.
a)continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
b)只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句
c)在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
d)從多層循環(huán)嵌套中退出時(shí),只能使用goto語句
11.有以下程序
main()
{charb,c;inti;
b=,a;c=,A';
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputchar(i+c);
}
printf('\n");
}程序運(yùn)行后的輸出結(jié)果是.
A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef
(二)、填空題
1.下面程序段是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循
環(huán)。請(qǐng)?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
(
if(c>='O'&&c<='9')n++;
c=getchar();
}
2.下面程序的功能是用〃輾轉(zhuǎn)相除法〃求兩個(gè)正整數(shù)的最大公約數(shù)。請(qǐng)?zhí)羁铡?/p>
ftinclude<stdio.h>
main()
(intr,m,n;
scanf("%d%d”,&m,&n);
if(m<n){r=m;m=n;n=r;}
r=m%n;
while(r){m=n;n=r;r=m%n;}
printf("%d\n〃,n);
)
3.下面程序的運(yùn)行結(jié)果是s=254.
#include<stdio.h>
main()
{inta,s,n,count;
a=2;s=0;n=l;count=l;
while(count<=7){n=n*a;s=s+n;++count;}
printf("s=%d",s);
)
4.下面程序段的運(yùn)行結(jié)果是一a=-5.
i=l;a=0;s=l;
do{a=a+s*i;s=-s;i++;}while(i<=10);
printf("a=%d",a);
5.下面程序段的運(yùn)行結(jié)果是8
i=l;s=3;
do{s+=i++;
if(s%7-0)continue;
else++i;
}while(s<15);
printf("%d”,i);
六、數(shù)組
1.以下為一維整型數(shù)組a的正確說明是.
a)inta(10);b)intn=10,a[n];
c)intn;d)#defineSIZE10
scanf&n);inta[SIZE];
inta[n];
2.以下對(duì)二維數(shù)組a的正確說明是.
a)inta[3][];b)floata(3,4);c)doublea[l][4]
d)floata(3)(4);
3.若二維數(shù)組a有m列,則計(jì)算任一元素在數(shù)組中位置的公式為
.(假設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上。)
a)i*m+jb)j*m+ic)i*m+jTd)i*m+j+]
4.若二維數(shù)組a有m歹則在前的元素個(gè)數(shù)為.
a)j*m+ib)i*m+jc)d)i*m+j+l
5.若有以下程序段:
inta[]={4,0,2,3,1},i,j,t;
for(i=l;i<5;i++)
{t=a[i];j=i-l;
while(j>=0&&t>a[j])
{a[j+l]=a[j];j—;}
a[j+l]=t;}
則該程序段的功能是.
a)對(duì)數(shù)組a進(jìn)行插入排序(升序)b)對(duì)數(shù)組a進(jìn)行插入排序(降序)
c)對(duì)數(shù)組a進(jìn)行選擇排序(升序)d)對(duì)數(shù)組a進(jìn)行選擇排序(降序)
6.有兩個(gè)字符數(shù)組a、b,則以下正確的輸入語句是.
a)gets(a,b);b)scanf("%s%s”,a,b);c)scanf&a,&b);
d)gets("a"),gets(〃b〃);
7.下面程序段的運(yùn)行結(jié)果是.
chara[7]="abcdef”;
charb[4]="ABC";
strcpy(a,b);
printfa[5]);a)空格b)\0c)ed)f
8.判斷字符串si是否大于字符串s2,應(yīng)當(dāng)使用.
a)if(sl>s2)b)if(strcmp(si,s2))c)if(strcmp(s2,si)>0)
d)if(strcmp(sl,s2)>0)
9.下面程序的功能是從鍵盤輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞
之間用空格分隔,請(qǐng)選擇填空。
ttinclude<stdio.h>
main()
(
chars[80],cl,c2=,;
inti=0,num=0;
gets(s);
while(s[i]!='\0')
{cl=s[i];
if(i==0)c2=>';
elsec2=s[i-1];
if(__)num++;
i++;
)
printf("Thereare%dwords.\n",num);
}
a)cl==,'&&c2==''b)cl!=''&&c2==''c)cl==''&&c2!='
d)cl!=''&&c2!=''
10.下面程序的運(yùn)行結(jié)果是.
ttinclude<stdio.h>
main()
{charstr[]="SSSWLIA”,c;
intk;
for(k=2;(c=str[k])!='\0';k++)
{switch(c)
{case'r:++k;break;
case'L':continue;
default:putchar(c);continue;
)
putchar('*,);
}
}
a)SSW*b)SW*c)SW*Ad)SW
填空1.若有定義:doublex[3][5];則x數(shù)組中行下標(biāo)的下限為
0,列下標(biāo)的上限為4
2.下面程序以每行4個(gè)數(shù)據(jù)的形式輸出a數(shù)組,請(qǐng)?zhí)羁铡?/p>
ttdefineN20
main()
{inta[N],i;
for(i=0;i<N;i++)
scanf("%d”,&a[i]);
for(i=0;i<N;i++)
{if(i%4==0)printf("\n");
printf("%3d”,a[i]);
)
printf('\n");
)
3.下面程序可求出矩陣a的主對(duì)角線上的元素之和,請(qǐng)?zhí)羁铡?/p>
main()
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j_)sum=sum+a[i][i];
printf("sum=%d\n”,sum);
)
4.當(dāng)從鍵盤輸入18并回車后,下面程序的運(yùn)行結(jié)果是_10010
main()
{intx,y,i,a[8],j,u,v;
scanf("%d",&x);
y=x;i=0;
do
{u=y/2;
a[i]=y%2;
i++;y=u;
}while(y>=l);
for(j=i-l;j>=0;j—)
printfa[j]);
)
5.下面程序用插入法對(duì)數(shù)組a進(jìn)行降序排序。請(qǐng)?zhí)羁铡?/p>
main()
{inta[5]={4,7,2,5,1);
inti,j,m;
for(i=l;i<5;i++)
{m=a[i];
.1=i-1;
while(j>=0&&m>a[j])
{a[j+l]=a[j];
J-;
)
a[j+l]=m;
for(i=0;i<5;i++)
printf("%d",a[i]);
printf(〃\n〃);
6.下面程序的功能是在三個(gè)字符串中找出最小的,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
main()
{chars[20],str[3][20];
inti;
for(i=0;i<3;i++)gets(str[i]);
strcpy(s,str[0]);
if(strcmp(s,str[1])<0)strcpy(s,str[1]);
if(strcmp(str[2],s)<0)strcpy(s,str[2]);
printf("%s\n",s);
7.下面程序的運(yùn)行結(jié)果是#&*&%.
#include<stdio.h>
main()
{chars[]="ABCCDA”;
intk;
charc;
for(k=l;(c=s[k])!='\0';k++)
{switch(c)
{case'A':putchar('%');continue;
case'B':++k;break;
default:putchar('*');
case'C':putchar('&');continue;
putchar('#');
七、函數(shù)
選擇
1.以下正確的說法是.建立函數(shù)的目的之一是
a)提高程序的執(zhí)行效率b)提高程序的可讀性c)減少程序的篇幅d)
減少程序文件所占內(nèi)存
2.以下正確的函數(shù)定義形式是.
a)doublefun(intx,inty)b)doublefun(intx;inty)c)double
fun(intx,inty);d)doublefun(intx,y);
3.C語言規(guī)定,簡單變量做實(shí)參時(shí),它和對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式為
A)地址傳遞B)單向值傳遞C)由實(shí)參傳給形參,再由形參傳回給實(shí)參
D)由用戶指定傳遞方式
4.C語言允許函數(shù)值類型缺省定義,此時(shí)該函數(shù)值隱含的類型是.
a)floatb)intc)longd)double
5.已有以下數(shù)組定義和f函數(shù)調(diào)用語句,則在f函數(shù)的說明中,對(duì)形參數(shù)
組array的錯(cuò)誤定義方式為.
inta[3][4];f(a);
a)f(intarray[][6])b)f(intarray[3][])c)f(intarray[][4])
d)f(intarray[2][5])
6.以下程序的正確運(yùn)行結(jié)果是.
#include<stdio.h>
voidnum()
{externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
main()
{inta=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n”,x,y);
}
a)12,2b)不確定c)5,25d)1,12
有以下程序:
ttinclude<stdio.h>
intf()
{staticintx=l;
x+=l;returnx;
)
main()
{inti,s=l;
for(i=l;i<=5;i++)s+=fun();
printf("%d\n",s);
}程序運(yùn)行后的輸出結(jié)果是A)llB)21C)6
D)120
填空1.以下程序的運(yùn)行結(jié)果是maxis2
#include<stdio.h>
intmax(int,int);
main()
{inta=l,b=2,c;
c=max(a,b);
printf(z,maxis%d'n”,c);
)
intmax(intx,inty)
{intz;
z=(x>y)?x:y;
return(z);
}
2.函數(shù)gongyu的作用是求整數(shù)numl和num2的最大公約數(shù),并返回該值。
請(qǐng)?zhí)羁铡?/p>
gongyu(intnuml,intnum2)
{inttemp,a,b;
if(numl(1)num2)
{temp=numl;numl=num2;num2=temp;}
a=numl;b=num2;
while(!b)
{temp=a%b;a=b;b=temp;}
return(a);
3.以下程序的運(yùn)行結(jié)果是—A+B=9.
#include<stdio.h>
inta=5;intb=7;
intplus(int,int);
voidmain()
{inta=4,b=5,c;
c=plus(a,b);
printf("A+B=%d\n”,c);
)
intplus(intx,inty)
{intz;
z=x+y;
return(z);
)
4.以下程序的運(yùn)行結(jié)果是.
main()X=1
y=l
{inexO;incy();incx();incy();incx()X=1incy();
y=2
}X=1
y=3
incx()
{intx=0;
printf(/,x=%d\t,z,++x);
)
incy()
{staticinty=0;
printf(〃\ny=%d\n〃,++y);
八、編譯預(yù)處理
選擇
1.以下敘述中正確的是.
a)在程序的一行上可以出現(xiàn)多個(gè)有效的預(yù)處理命令行
b)使用帶參的宏時(shí),參數(shù)的類型應(yīng)與宏定義時(shí)的一致
c)宏替換不占用運(yùn)行時(shí)間,只占用編譯時(shí)間
d)在以下定義中CR是稱為“宏名”的標(biāo)識(shí)符
ttdefineCR045
2.以下程序的運(yùn)行結(jié)果是.
#defineMIN(x,y)(x)<(y)?(x):(y)
main()
{inti=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n”,k);
}a)10b)15c)100d)150
3.若有宏定義如下:
ttdefineX5
#defineYX+l
#defineZY*X/2
則執(zhí)行以下printf語句后,輸出結(jié)果是.
inta;a=Y;
printf("%d\n",Z);
printf("%d\n",—a);
a)7b)12c)12d)7
6655
4.請(qǐng)讀程序:
#include<stdio.h>
ttdefineMUL(x,y)(x)*y
main()
{
inta=3,b=4,c;
c=MUL(a++,b++);
printf(z,%d\n/z,c);
)
上面程序的輸出結(jié)果是.
a)12b)15c)20d)16
5.有以下程序
ttinclude<stdio.h>
#definef(x)x*x*x
main()
{inta=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n”,s,t);
}程序運(yùn)行后的輸出結(jié)果是.
A)10,64B)10,10C)64,10D)64,64
九、指針
一、選擇題
1.變量的指針,其含義是指該變量的.a)值b)地址c)
名d)一個(gè)標(biāo)志
2.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是—
a)a,point,*&ab)&*a,&a,*point
c)*&point,*point,&ad)&a,&*point,point
3.若有說明;int*p,m=5,n;以下正確的程序段的是.
a)p=&n;b)p=&n;c)scanf&n);
d)p=&n;
scanf("%d",&p);scanf("%d",*p);*p=n;
*p=m;
4.下面程序段的運(yùn)行結(jié)果是.
char*s=〃abcde”;s+=2;printfs);
a)cdeb)字符'c'c)字符'c'的地址d)無確定的輸出結(jié)果
5.設(shè)pl和p2是指向同一個(gè)字符串的指針變量,c為字符變量,則以下不
能正確執(zhí)行的賦值語句是.
a)c=*pl+*p2;b)p2=cc)pl=p2d)c=*pl*(*p2);
6.以下正確的程序段是.
a)charstr[20];b)char*p;c)charstr[20];
d)charstr[20],*p=str;
scanf("%s”,&str);scanfp);scanf&str[2]);
scanfp[2]);
7.若有說明語句chara[]=,,Itismine";char*p="Itismine";則
以下不正確的敘述是
a)a+l表示的是字符t的地址b)p指向另外的字符串時(shí),
字符串的長度不受限制
c)p變量中存放的地址值可以改變d)a中只能存放10個(gè)字符
8.下面程序的運(yùn)行結(jié)果是.
#include<stdio.h>
#include<string.h>
main()
(
char*sl="AbDeG”;
char*s2="AbdEg”;
sl+=2;s2+=2;
printf(繪d\n”,strcmp(sl,s2));
}a)正數(shù)b)負(fù)數(shù)c)零d)不確定的值
9.下面程序的運(yùn)行結(jié)果是.
ttinclude<stdio.h>
#include<string.h>
fun(char*w,intn)
{chart,*sl,*s2;
sl=w;s2=w+n-l;
while(sl<s2){t=*sl++;*sl=*s2一;*s2=t;}
}
main()
{char*p;
p=〃1234567〃;
fun(p,strlen(p));
puts(p);
a)7654321b)1714171c)1711717d)7177171
10.若有以下定義,則對(duì)a數(shù)組元素的正確引用是.
inta[5],*p=a;a)*&a[5]b)a+2c)*(p+5)
d)*(a+2)
11.若有定義:inta[2][3],則對(duì)a數(shù)組的第i行j列元素地址的正確引用
為.
a)*(a[i]+j)b)(a+i)c)*(a+j)d)a[i]+j
12.若有以下定義,則p+5表示.
inta[10],*p=a;a)元素a[5]的地址b)元素a[5]的值c)
元素a[6]的地址d)元素a[6]的值
二、填空題
1.以下程序的功能是:通過指針操作,找出三個(gè)整數(shù)中的最小值并輸出。
請(qǐng)?zhí)羁铡?/p>
#include"stdio.h"
main()
{int*a,*b,*c,num,x,y,z;
a=&x;b=&y;c=&z;
printf("輸入3個(gè)整數(shù):");
scanfa,b,c);
printf("%d,%d,%d\n”,*a,*b,*c);
num=*a;
if(*a〉*b)___num=*b;
if(num>*c)num=*c;
printf(“輸出最小整數(shù):%d\n”,num);
2.下面程序段的運(yùn)行結(jié)果是hELLO—.
chars[80],*sp="HELL0!”;
sp=strcpy(s,sp);
s[0]-h';
puts(sp);
3.下面程序段的運(yùn)行結(jié)果是ef.
charstr[]="abc\0def\0ghi",*p=str;
printfp+5);
4.下面程序的功能是將兩個(gè)字符串si和s2連接起來。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{charsi[80],s2[80];
gets(sl);gets(s2);
conj(si,s2);
puts(si);
)
conj(char*pl,char*p2)
{char*p=pl;
while(*pl)pl++;
while(*p2){*p1=*p2;pl++;p2++;}
*pl='\0';
)
5.若有定義:inta[]={2,4,6,8,10,12},*p=a;則*(p+l)的值是,
*(a+5)的值是12.
6.若有以下定義:inta[2][3]={2,4,6,8,10,12};則a[l][0]的值是」—.
*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西師新版選修4地理上冊(cè)階段測試試卷含答案
- 建筑工程項(xiàng)目周報(bào)
- 2025合同模板個(gè)人房屋出租協(xié)議房東出協(xié)議范本
- 2025對(duì)外簽訂合同的相關(guān)知識(shí)及注意事項(xiàng)
- 2025年外研版三年級(jí)起點(diǎn)選修4地理下冊(cè)階段測試試卷
- 2025年岳麓版必修2化學(xué)上冊(cè)月考試卷
- 2025年蘇人新版八年級(jí)生物上冊(cè)月考試卷含答案
- 2025年岳麓版高二地理下冊(cè)階段測試試卷
- 2025年粵教版必修2化學(xué)上冊(cè)月考試卷含答案
- 2025涉密人員保密基本知識(shí)考試題庫(含參考答案)
- 開工第一課安全培訓(xùn)內(nèi)容
- 湖北省石首楚源“源網(wǎng)荷儲(chǔ)”一體化項(xiàng)目可研報(bào)告
- 經(jīng)顱磁刺激增強(qiáng)定神狀態(tài)的研究
- 會(huì)陰切開傷口裂開的護(hù)理查房
- 《鋼鐵是怎樣煉成的》選擇題100題(含答案)
- 2024年國新國際投資有限公司招聘筆試參考題庫含答案解析
- 食堂餐廳服務(wù)方案投標(biāo)方案(技術(shù)標(biāo))
- Creo-7.0基礎(chǔ)教程-配套課件
- 六年級(jí)人教版上冊(cè)數(shù)學(xué)計(jì)算題練習(xí)題(及答案)100解析
- 超聲科質(zhì)量控制制度及超聲科圖像質(zhì)量評(píng)價(jià)細(xì)則
- 初中物理滬粵版八年級(jí)下冊(cè)《第六章 力和機(jī)械》章節(jié)練習(xí)(含答案)
評(píng)論
0/150
提交評(píng)論