




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言的作業(yè)
第一章C語言的程序結構和表達式
一、選擇題
1.下列說法中錯誤的是()
A.主函數包括函數首部和函數體兩部分
B.主函數可以調用任何非主函數
C.任何非主函數可以調用其他任何非主函數
D.程序可以從任何非主函數開始執(zhí)行
2.C語言中的標識符只能由字母、數字和下劃線三種字符組成,且第一個字符()
A.必須為字母或下劃線B.必須為下劃線
C.可以是字母、數字和下劃線中的任一種字符
D.必須為字母
3.有關下列程序的正確選項是()
#include"stdio.h"
voidmain()
{printf("%d”,NULL);
)
A.輸出0B.因變量無定義,編譯出錯,沒有輸出
C.輸出-1D.輸出NULL
4.下列程序段處理后,正確的選項是()。
longx=-41;
printf(u%ld,,,x);
A.輸出值為-4B.賦值非法
C.輸出值不確定D.輸出值為4
5.C程序中,主函數main()的位置()
A.必須放在其他函數之前B.必須在源程序的最后
C.可以在程序的任何位置D.包含文件中的第一個函數
6.下列敘述正確的是()
A.C語言中每一行只能寫一個語句
B.C語言中沒有輸入/輸出語句,數據的輸入/輸出通過函數調用實現
C.C語言源程序經過編譯就可以生成EXE文件
D.C語言中的每一條語句均以換行符作為結束標志
7.下列敘述中正確的是()
A.C語言的源程序不必經過編譯就可直接執(zhí)行
B.C語言源程序經編譯形成的二進制代碼可以直接運行
C.C語言中的函數不可以單獨編譯
D.C語言中的每條可執(zhí)行語句最終將被轉換成二進制的機器指令
8.char型常量在內存中存放的是()
A.ASCII碼值B.BCD碼值C.內碼值D.十進制代碼值
9.表達式a=(a=6,a*6,a+3)運行后,則a的值為()
A.39B.36C.6D.9
10.下列選項中不是C語言的合法保留字的是()
A.switchB.cherC.caseD.default
11.下列數據中屬于“字符串常量”的是()
A.ABCB."ABC"C/abc5D/a5
12.設m,n,a,b,c,d均為0,則執(zhí)行語句(m=a==b)||(n=c==d)后,m,n的值是()
A.O,0B.O,1C.l,0D.l,1
13.執(zhí)行語句x=(a=3,b=a—);后,x,a,b的依次是()
A.3,3,2B.3,2,2C.3,2,3D.2,3,2
14.若有語句inta=3;則執(zhí)行語句a+=a-=a*a;后,變量a的值是()
A.-24B.OC.9D.-12
15.設n=10,i=4;則賦值運算n%=i+l執(zhí)行后n的值是()
A.OB.3C.2D.1
16.設inta=2,b;則執(zhí)行b=a&&l后b的值是()
A.OB.lC.2D.3
17.設intm=l,n=2;貝表達式++m==n的值是()
A.OB.lC.2D.3
18.表達式(1,2,3,4)的值是()
A.lB.2C.3D.4
19.字符串"\\\"ABC"\\"的長度是()
A.llB.7C.5D.3
20.下列程序段的輸出結果是()
unsigneda=4294967295;
printf("%d\rT,a);
A.65535B.-lC.-32767D.l
21.若以下選項中的變量已經定義,則正確的賦值表達式是()
A.xl=35.6%10B.x+2=a+bC.x3=0123D.x4=y+3=5
22.若有定義floata=2,b=4,h=3;,則與代數式(a+b)h中的計算結果不相同的c語言表達式是
()
A.(a+b)*h/2B.(l/2)*(a+b)*h
C.(a+b)*h*l/2D.h/2*(a+b)
23.設有inti=010,j=10;則printf("%d,%d\n”,++i,j—);的輸出是()
A.11,10B.9,10C.010,9D.10,9
24.設x,y,z,t均為int型變量,則執(zhí)行以下語句后,t的值為()。
x=y=z=1;
t=++xll++y&&++z;
A.不定值B.2C.lD.O
25.若有如下程序,要求al,a2,cl,c2的值分別為10,20,A,B,則正確的輸入語句是()
#include"stdio.h"
voidmain()
{intal,a2;
charcl,c2;
scanf(44%d%d,,,&al,&a2);
scanf("%c%c”,&c1,&c2);
)
A.1020ABB.1020<CR>AB<CR>
C.1020AB<CR>D.1020AB<CR>
26.在下列程序中,輸入數據為12345<CR>后,y的值是()
#include“stdio.h"
voidmain()
{intx;
floaty;
scanf(u%3d%f\&x,&y);
)
A.12.000000B.345.000000C.12345.000000D.0.000000
27.下列程序的輸出結果是()
#include"stdio.h"
voidmain()
{intsum,pad;
sum=pad=5;
pad=sum++;
pad++;
++pad;
printf("%d\n”,pad);
)
A.7B.6C.5D.4
28.已知字母A的ASCII碼是65,則下列程序的輸出結果是()
#include“stdio.h"
voidmain()
{charcl=?A',c2='Y';
printf(<<%d,%d\n,,,cl,c2);
)
A.A,YB.65,65C.65,90D.65,89
29.下列程序的輸出結果是()
#include"stdio.h"
voidmain()
{intx=-l,y=4;
intk;
k=x++<=0&&!(y—<=0);
printf('t%d,%d,%d\n,,,k,x,y);
)
A.0,0,3B.1,1,2C.1,0,3D.1,1,2
30.執(zhí)行下列()選項中的程序段后變量i的值為4()
A.inti=l,j=0;B.inti=0,j=0;
i=j=((i=3)++);(i=2,i+(j=2));
C.inti=l,j=l;D.inti=l,j=0;
i+=j+=2;(j==l)?i+=3:i=2;
31.下列程序的輸出結果是()
#include“stdio.h"
voidmain()
{inta,b,c=241;
a=c/100%9;
b=-l&&-l;
printfC'%d,%d\n,,,a,b);
)
A.2,0B.2,1C.6,1D.0,-1
32.設有下列宏定義,則執(zhí)行語句z=2*(N+Y(5+l));后,z的值為()
#defineN3
#defineY(n)((N+1)*n)
A.出錯B.42C.48D.54
33.表達式0xl3A0xl7的值是()
A.0x04B.0xl3C.0xE8D.OxlC
34.下列程序的執(zhí)行結果是()
#include<stdio.h>
voidmain()
(
unsignedchara,b;
a=4I3;
b=4&3;
printrf(<t%d,%d\n,\a,b);
1
A.0,7B.7,0C.1,1D.43,0
二、填空題
1.C語言程序的注釋可以出現在程序中的任何地方,它以_______表示。
2.一個C程序由若干個函數組成,其中必須有一個_________函數。
3.C程序中的函數一般由兩部分組成,它們是和o
4.C語言源程序要能夠執(zhí)行還必須經過和兩個過程。
5.在用流程圖對算法進行描述時,主要采用和o
6.執(zhí)行下列程序后,其輸出結果是o
#include<stdio.h>
voidmain()
(
inta=102,b=012;
printf("%2d,%2d\n”,a,b);
)
7.能表示"20<x<30或xv-100”的C語言表達式是。
8.設intx=9,y=8;則表達式x==y+1的結果是。
9.下列程序的輸出結果是o
#include<stdio.h>
voidmain()
(
floatfl=13.8f;
intn;
n=(int)fl%3;
printf("n=%d\n”,n);
)
10.下列程序的輸出結果是o
#include<stdio.h>
voidmain()
(
intn=2;
n+=n-=n*n;
printf("%d\n”,n);
)
11.下列程序輸入123<CR>后的輸出結果是?
#include<stdio.h>
voidmain()
(
inta,c;
charb;
scanf("%d%c%d”,&a,&b,&c);
printf(t4a=%d,b=%c,c=%d\n,,,a,b,c);
12.下列程序輸入ABCvCR>后的輸出結果是
#include<stdio.h>
voidmain()
{
charc;
scanf("%3c”,&c);
printf(44c=%c\n,,,c);
)
13.若有如下程序段:
intnl=12,n2=25;
printf("”,nl,n2);
要求按以下格式輸出nl和n2的值,每個輸出行從第一列開始。請?zhí)羁胀瓿沙绦蚨巍?/p>
nl=12
n2=25
14.用表達式描述下列命題:
(1)三個數據a、b、c若能構成三角形,表達式取真值,否則取假值,其表達式為
(2)ch是字母時條件表達式取值為真,其表達式為=
15.設有定義#defineF(N)2*N,則表達式F(2+3)的值是。
16.設intx,則當x的值為2時,表達式(x&l==1)?1:0的值是。
第二章控制結構
一、選擇題
1.循環(huán)語句for(x=0,y=0;(y!=123)ll(x<4);x++);的循環(huán)體執(zhí)行()
A.無限次B.不確定次
C.4次D.3次
2.設x和y均為int型變量,則執(zhí)行下列程序段后,y的值為()
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
)
A.2B.4C.6D.8
3.為了避免嵌套if……else語句的二義性,c語言規(guī)定else總是與()組成配對關系。
A.縮排位置相同的ifB.在其之前未配對的if
C.在其之前未配對的最近的ifD.同一行上的if
4.若有定義intx,y;,則下列選項中合法的if語句是()
A.if(a==b)x++;B.if(a=<b)x++;
C.if(aob)x++;D.if(a=>b)x++;
5.下列程序段表示的邏輯關系是()
if(a<b){if(c==d)x=l;}elsex=2;
1a<匕且c=d1a<且c=d
x=<B.x=<
12a>Z?且cwd2a>b
1a<匕且c=d1a<且c=d
D.x=<
2a<Z?且cwd2c手d
6.語句while(!e)中的條件!e等價于()
A.e==0B.e!=lC.e!=0D.~e
7.下列有關for循環(huán)的正確描述是()
A.for循環(huán)只能用于循環(huán)次數已經確定的情況
B.for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式
C.在for循環(huán)中,不能用break語句跳出循環(huán)體
D.for循環(huán)的循環(huán)體可以包含多條語句,但要用花括號括起來
8.對于for(表達式1;;表達式3)可理解為().
A.for(表達式1;0;表達式3)B.for(表達式1;1;表達式3)
C.for(表達式1;表達式1;表達式3)D.for(表達式1;表達式3;表達式3)
9.下列程序的輸出結果描述中,正確的是()
#include“stdio.h"
voidmain()
{intx;
for(x=1;x<=100;x++)
if(++x%2==0)
if(++x%3==0)
if(++x%5==0)
printf(“%d,”,x);
A.輸出31,61,91B.輸出30,60,90
C.不輸出任何內容D.輸出29,59,89
10.在下列選項的程序段中,于語句k=a>b?(b>c?l:0):0功能等價的是()
A.if(a>b)&&(b>c)k=l;elsek=0;
B.if(a>b)ll(b>c)k=l;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=l;
D.if(a>b)k=l;elseif(b>c)k=l;elsek=0;
11.在運行下列程序時,如果從鍵盤上輸入01,則輸出結果是()
#include“stdio.h''
voidmain()
{chark;
inti;
for(i=l;i<3;i++)
{scanf("%c”,&k);
switch(k)
{case'O':printf("nni\n'');
caseT:printf(“22222\n");
)
A.lllllB.lllllC.lllllD.22222
22222222222222222222
2222222222
12.下列程序的功能是求解()
#include“stdio.h"
voidmain()
{intj,sum;
for(sum=0,j=l;j<10;j+=2)
sum+=j+l;
printf(t<sum=%d\n,,,sum);
)
A.l~9的累和中的偶數之和
C.l-9中奇數之和D.l-10的累加和
13.下列程序中的for循環(huán)執(zhí)行的次數是()
#include“stdio.h"
#defineN2
#defineMN+l
#defineNUM(M+l)*M/2
voidmain()
{inti,n=0;
for(i=1;i<=NUM;i++)
{n++;
printf("%d”,n);
)
printf("\n”);
)
A.5B.6C.8D.9
二、填空題
1.設i、j、k均為int型變量,則執(zhí)行下列的for語句后,k的值為__________「
for(i=0,j=10;i<=j;i++,j—)
k=i+j;
2.下列程序的功能是:從鍵盤上輸入一個正整數,判斷是否為素數,若是素數輸出1,否則
輸出Oo請?zhí)羁胀瓿沙绦颉?/p>
#include“stdio.h"
voidmain()
{inti.x,①;
scanf("%d”,&x);
for(i=2;i<=x/2;i++)
if(②)
{y=o;
break;
)
printf("%d\n”,y);
)
3.下列程序的輸出結果是
#include"stdio.h"
voidmain()
{inti,j,k;
for(i=l;i<=4;i++)
{for(j=l;j<=20-3*i;j++)
printf("");
for(k=1;k<=2*i-l;k++)
printf("%3s”J*");
printf(“\n”);
)
for(i=3;i>0;i—)
{for(j=l;j<=20-3*i;j++)
printf(46");
for(k=l;k<=2*i-l;k++)
printf("%3s”,“*");
printf("\n”);
)
)
4.下列程序段的循環(huán)次數是
intx=0,y=0;
do
{y++;
x*=x;
}while(x>0&&y>5);
5.下列程序的輸出結果是
#include"stdio.h"
voidmain()
{inti=0,s=l;
do
s+=i++;
while(i++<6);
printf(t<%\n,,,s);
6.下列程序接收來自鍵盤的輸入,直到輸入ctrl+z(值為-1)為止。這些字符被原樣輸出,但
若有連續(xù)一個以上的空格時只輸出一個空格。請?zhí)羁胀瓿沙绦颉?/p>
#include“stdio.h"
voidmain()
{charex;
charfront=94;
while(①)
{if(cx!='')
putchar(cx);
if(cx==,')
if(front1=')
putchar(cx);
②
7.下列程序用“輾轉相除法”計算兩個正整數m和n的最大公約數,假定執(zhí)行中的輸入數
據是15,25o請?zhí)羁胀瓿沙绦颉?/p>
#include"stdio.h"
voidmain()
{intm,n,w;
scanf("%d,%d”,&m,&n);
while(n)
{w=①
②
printf(4<%d\n,,?m);
)
8.下列程序的輸出結果是
#include"stdio.h"
voidmain()
{inti,m=0;
for(i=2;i<5;i++)
{do
{if(i%3)
continue;
m++;
}while(!i);
m++;
prinf("%d”,m);
9.下列程序求解的問題是:某新開酒店2011年的利潤為10.5萬元,年增長率為12.3%;
老酒店2011年的利潤為20.3萬元,年增長率為#%。在兩個增長率不變的條件下,求解多少
年后新酒店的利潤率超過老酒店。請?zhí)羁胀瓿沙绦颉?/p>
#include“stdio.h"
voidmain()
{doublehotel1=10.5,hotel2=20.3;
intyear=0;
while()
{hotell*=1.123;
hotel2*=1.03;
year=;
)
Printf("%d年后新酒店超過老酒店\n",year);
)
三、讀程序,寫結果
1.下列程序的執(zhí)行結果是多少?
#include"stdio.h"
voidmain()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(x<y)
if(y!=10)
if(!okl)
a=l;
else
if(ok2)
a=10;
else
a=-l;
printf(<6a=%d\n,,,a);
)
2.下列程序的執(zhí)行結果是多少?
#include"stdio.h"
voidmain()
{inti=5;
do
{switch(i%2)
{case4:i—;break;
case6:i—;continue;
)
i--;
i—;
printf(“%d,”,i);
while(i>0);
)
3.下列程序的執(zhí)行結果是多少?
#include“stdio.h"
voidmain()
{inta=10,y=0;
do
{a+=2;
y+=a;
if(y>50)break;
)while(a=14);
printf(t<a=%d,y=%d\n,,,a,y);
)
4.下列程序的執(zhí)行結果是多少?
#include"stdio.h"
voidmain()
{intx,y;
for(x=1,y=1;y<=50;y++)
{if(x>=10)break;
if(x%3==l){x+=5;continue;}
x+=3;
)
PrintfC<x=%d,y=%d\n,,,x,y);
)
5.在執(zhí)行下列程序時,若輸入的數據是346759,則輸出結果是多少?
#include"stdio.h"
voidmain()
{charcl,c2;
intm,n,i;
for(i=l;i<=3;i++)
{cl=getchar();
c2=getchar();
m=cl-'0,;
n=m*10+(c2-t0,);
)
Printf("%d\rT,n);
)
四、程序設計題
1.編程實現功能:輸入三個單精度數,輸出其中的最小數。
2.編程實現功能:求出所有各位數字的立方和等于1099的三位整數。
3.編程輸出如下圖形:
1
121
12321
1234321
123454321
12345654321
4.編程實現功能:從鍵盤輸入若干學生成績,輸出最高成績和最低成績(提示:以輸入-1
作為學生成績輸入的結束)。
5.編程實現功能:從鍵盤上任意輸入兩個整數,求這兩個整數之間的所有奇數和偶數之和。
6.函數fun()的原型為:intfun(inta,inty);實現的功能是:將兩個兩位數的整數a,b合
并形成一個整數放在c中。合并的方式是:將a的十位和個位數依次放在c的千位和十
位上,b的十位和個位數依次放在c的個位和百位上。若a=45,b=12,貝ljc=4251。編寫函
數fun。并用相應的主函數進行測試。
第三章指針與數組
一、選擇題
1.函數調用strcat(strcpy(strl,str2),str3)的功能是()
A.將字符串strl復制到字符串str2中后再連接到字符串str3之后
B.將字符串strl復制到字符串str2中后再復制到字符串str3之后
C.將字符串str2復制到字符串strl2中后再將字符串str3連接到字符串strl之后
D.將字符串str2連接到字符串strl中后再將字符串復制到字符串str3中
2.下列程序執(zhí)行后,變量i的值是()
inti;
charstr[]="a\045+045\'b";
for(i=0;str[i]!='\0';i++);
A.7B.8C.9D.10
3.下列程序段的輸出結果是()
chars[12]="abook!”;
printf("%s”,s+2);
A.abook!B.aboC.book!D因格式描述不正確,沒有確定的輸出
4.若有定義charsl[]="AbCdE",s2[]="aBcDe”廁表達式strcmp(sl+l,s2+l)的值是()
A.零B.負數C.正數D.非零值,正負數難以確定
5.若有定義chars[12]={"string”};,則printf("%d\n”,strlen(s));的輸出結果是()
A.6B.7C.llD.12
6.下列選項中合法的數組定義是()
A.ints[]={"string”};B.inta[5]={'abc',T};
C.chara={"string”};D.chara[]={0,l,2,3};
7.若有定義int*point,a=4;和語句point=&a;則下列代表地址的一組選項是()
A.a,point,*&aB.&*a,&a,*point
C.*&point,*point,&aD.&a,&*point,point
8.若有如下定義:charx[]="china”,y[10]="china”;,則下列選項中敘述正確的是()
A.數組x的長度為5B.數組x和數組y長度相同
C.數組x的長度大于數組y長度D.數組x的長度小于數組y長度
9.若有如下定義:inta[2][3];則該二維數組中的元素個數是()
A.3B.4C.5D.6
10.下列關于數組的描述正確的是()
A.數組的大小是固定的,但可以有不同類型的數組元素
B.數組的大小是可變的,且所有數組元素的類型必須相同
C.數組的大小是固定的,且所有數組元素的類型必須相同
D.數組的大小是可變的,且可以有不同類型的數組元素
11.若有定義:inta[10];則對數組a中元素的引用正確的是()
A.a[10]B.a[6,3]C.a(6)D.a[10-10]
12.下列選項中對二維數組不正確的初始化是()
A.inta[][3]={3,2,l,l,2,3);B.inta[][3]={{3,2,l},{l,2,3});
C.inta⑵[3]={{3,2』,},{1,2,3}};D.inta[][>{{3,2,1},{1,2,3));
13.下列選項中正確的數組定義形式是()
A.intA[a];B.inta[3,4];C.intA[][3];D.intA[10];
14.若有如下定義:血叫[3]={1,2,3,4,5,6};則如1][0]的值是()
A.4B.1C.2D.5
15.當接收用戶輸入的含空格的字符串時,應使用的函數是()
A.scanf()B.gets()C.getchar()D.getc()
16.下列程序的輸出結果是()
#include"stdio.h''
voidmain()
{charb[]="Helloyou”;
b[5]=,\0,;
printf(%s,,,b);
A.HelloyouB.HelloC.HellD.HelloOyou
17.下列程序的輸出結果是()
#include“string.h"
#include"stdio.h''
voidmain()
{charx[]="1234567”,y[12]="1234567”;
printf(4%d,%d,%d\n,,,strlen(x),sizeof(x),sizeof(y));
A.7,7,7B.7,8,8C.7,8,12D.8,8,8
18.若有定義:intk,a[3][3]={9,876,5,4,3,2,1};則下歹U語句的輸出結果是()
for(k=0;k<3;k++)
printf("%d”,a[k][k]);
A.753B,951C.963D.741
19.若有下列定義,則下列選項合法的是()
inti,alO],*p;
A.p=a+2;B.p=a[5];C.p=a[2]+2;D.p=&(i+2);
20.有關下列程序段的說法中,正確的是()
chars[10]="5876273”;
char*p=s;
printf(<<%c,,,p[l]-<0,);
A.輸出格式錯誤語法錯誤
C.輸出8D.輸出ASCII碼值為8的字符
21.下列程序的運行結果是()
#include“stdio.h"
voidmain()
{charsl[]='Tanguage'',s2[]=''program'';
char*pl=sl,*p2=s2;
intk;
for(k=0;k<7;k++)
if(*(p1+k)==p2[k])
putchar(*(k+p1));
printf(“\n”);
)
A.ageB.ga
C.languageD.有語法錯誤,不能運行
22.具有相同類型的指針類型變量p與數組a,下列選項中不正確的操作是()
A.p=a;B.p=NULL;C.p=&a[0];D.p=&a;
23.若已定義chara[10]和char*p=a,則正確的賦值語句是()
A.a[10]="urboc"B.a=,,Turboc”
C.*p="Turboc"D.p="Turboc”
24.若有定義:
#include"stdio.h"
chara[10],*b=a;
則不能給數組a輸入字符串的函數調用語句是()
A.gets(a);B.gets(b);C.gets(&a[O]);D.gets(a[O]);
25.若有定義血2出出={1,2,3,4}4[3]甲[0工[1];則*6[0]+1)表示的數組元素是,<)
A.a[O][O]B.a[O][l]C.a[l][l]D.a[U[O]
二、填空題
1.若有chara[3]="as";,貝i]*a=,*(a+2)=。
2.下列程序的功能是將數組的元素按由大到小的順序進行排序。請?zhí)羁胀瓿沙绦颉?/p>
#include"stdio.h"
voidmain()
{inta[12]={5,8,9,6,2,7,3,2,2,7,8,0},i,j,k;
for(k=0;k<l1;k++)
for(i=k;i<12;i++)
if(a[i]>1
{j=a[i];
a[i]=;
________=j;
)
for(i=0;i<12;i++)
printf(<t%d,,,a[i]);
printfC'W");
)
3.若有如下定義:intb[5],a[][3]={1,234,5,6},則b[4]=,a[l][2]=。
4.下列程序的運行結果是o
#include"stdio.h"
voidmain()
{chara[5]={'A','B','C','D','E'},*P=A,**PA;
for(;p<a+5;p++)
printf(“%2c”,*p);
printf(“\n”);
P=a;
printf("%2c\n”,**(pa=&p));
)
5.下列程序的運行結果是o
#include“stdio.h"
voidmain()
{inta[]={l,2,3,4,5,6),*p;
P=a;
*(p+3)+=2;
Printf("%d,%d\n”,*p,*(p+3));
}
6.下列程序的功能是輸出數組s中最大元素的下標。請?zhí)羁胀瓿沙绦颉?/p>
#include“stdio.h"
voidmain()
{intk,p;
ints[]={l,-9,7,2,-10,3);
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])
Printf(t<%d\n,,,k);
)
7.下列程序的功能是將一個字符串str的內容顛倒過來。請?zhí)羁胀瓿沙绦颉?/p>
#include"stdio.h"
#include“string.h"
voidmain()
{inti,j;
chark;
charstr[]={<<1234567,};
for(i=0,j=strlen(str)-l;;i++,j--)
{k=str[i];
str[i]=str[j];
str[j]=k;}
puts(str);
)
8.下列程序的輸出結果是o
#include“stdio.h"
voidmain()
{inta[][3]={9,7,5,3,l,2,4,6,8);
inti,j,sl=O;
for(i=0,j=0;i<3;i++,j++)
if(i==j)
sl+=a[i][j];
printf("%d\n'',sl);
)
9.下列程序的輸出結果是o
#include"stdio.h"
#include“string.h"
voidmain()
{charsl[50]={66somestring*"};
chars2[]={"test"};
printf(<<%d,,,,strlen(s2));
printf("%s\n”,sl);
)
10.下列程序的輸出結果是o
#include"stdio.h"
#include“string.h"
voidmain()
{chararr[2][4];
strcpy(arr[0],^^you^^);
strcpy(arr[l],''me’’);
arr[0][3]=,&,;
printf("%s\n”,arr);
}
三、閱讀程序,寫結果
1.下列程序的執(zhí)行結果是多少?
#include"stdio.h"
voidmain()
{inti,j,a[]={0,2,8,4,5);
printf('\n");
for(i=l;i<=5;i++)
{j=5-i;
printf(“%2d”,a[jD;
)
2.下列程序的執(zhí)行結果是多少?
#include“stdio.h"
voidmain()
{inta[ll],b[4],i,j;
for(i=1;i<=10;i++)
a[i]=i;
for(i=0;i<4;i++)
b[i]=0;
for(i=l,j=0;i<=10;i++)
{b[j]+=a[i];
if(i%3==0)
j++;
)
for(;j>=0;j-)
printf("%3d”,b[j]);
)
3.下列程序的執(zhí)行結果是多少?
#include“stdio.h''
voidmain()
{char*s2='TloveChina!”,**s=&s2;
char*s3,c,*s4=''w";
s3=&c;
*s3='H;
s2=s2+2;
printf(<<%s\t%c\t%s\t%c\n,,,s2,*s3,s4,**sl);
)
4.下列程序的執(zhí)行結果是多少?
#include“stdio.h"
voidmain()
{inti,a[]={ll,22,33,44,55,66,77,88,56,29),*p=a+4;
for(i=3;I;i-)
switch(i)
{defaut:printf(u%d\t,,,*p++);
case1:
case2:printf("%d\t",*p--);break;
case3:printf("%d\t”,*(++p));
)
)
5.下列程序的執(zhí)行結果是多少?
#include“stdio.h"
voidmain()
{char*sl[20]="Front”,s2[20]="Behind”;
char*psl=sl,*ps2=s2;
while(*psl++);
while(*ps1++=*ps2++);
*psl='\O';
printf("%s\rT,sl);
四、程序設計題
1.輸入10個整數存入一維數組中,再按逆序重新存放后輸出。
2.輸入一個字符串,將其中的所有大寫字母改為小寫字母,所有小寫字母改為大寫字母,然
后輸出。
3.輸入一個字符串,按相反次序輸出其中的所有字符。
4.輸入一個3X6的二維數組,輸出其中的最大值、最小值及其所在的行列下標。
5.輸入10個整數,將其中的最大數和最后一個數交換,最小數與第一個數交換。
6.輸入一個八位的整數,將數中各位數為奇數的數依次輸出構成一個新數,高位仍在高位,
低位仍在低位。如:輸入76459732,則輸出為7573。
第四章函數
一、選擇題
1.下列函數調用語句中的實參個數是()
fun(a+b,(x,y),fun(n+k,a,x+y));
A.3B.4C.5D.6
2.下列程序的輸出結果是()
#include"stdio.h"
intfun(inta)
{intb=0;
staticintc=3;
b++,c++;
returna+b+c;
)
voidmain()
{intx=2,I;
for(i=0;i<3;i++)
printf("%d”,fun(x));
)
A.789B.777C.888D.78910
3.在C語言中,下列說法正確的是()
A.函數定義可以嵌套,但函數調用不能嵌套
B.函數定義不可以嵌套,但函數調用可以嵌套
C.函數定義和調用均不能嵌套
D.函數定義和調用均可以嵌套
4.一個程序由若干文件組成,共用同一變量,則此變量的存儲類別是()
A.autoB.externC.staticD.register
5.下列對C語言函數描述的有關選項中,正確的是()
A.調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.函數既可以嵌套定義又可以嵌套調用
C.函數必須有返回值,否則不能使用函數
D.有調用關系的所有函數必須放在同一個源程序文件中
6.C語言規(guī)定,函數的返回值的類型由()。
A.return語句中的表達式所決定
B.調用該函數時的主調用函數類型所決定
C.調用該函數時系統(tǒng)臨時決定
D.在定義該函數時所指定的函數類型所決定
7.有一個名為newpr的函數用于打印sin(x)、cos(x)和ln(x)等函數的曲線模型,其參數就是這
些函數,則newpr函數的說明是()
A.doublenewpr(doublex)B.voidnewpr(double(*f)(doublex))
C.voidnewpr(double(*f)(),(doublex))D.void(*newpr)(doublef(doublex))
8.有一個函數的定義為voidnewpr(double(*f)(),doublex){printf("%f\n",(*f)(x));},
則正確調用該函數的語句是()
A.newpr(sin,0.5);B.newpr(sin(0.5));
C.newpr(&sin,0.5);D.newpr((&sin)(0.5));
9.函數func(inta){printf("%d”,a);}的返回值類型是()
A.intB.voidC.沒有返回值D.無法確定
10.下列程序的輸出結果是()
#include"stdio.h"
voidmain()
{intfunc(inta,intb);
intk=4,m=l,p;
p=func(k,m);
printf(“%d,”,p);
p=func(k,m);
printf("%d\n”,p);
)
intfunc(inta,intb)
{staticintm=0,i=2;
i+=m+l;
m=i+a+b;
returnm;
)
A.8,17B.8,16C.8,20D.8,8
11.下列程序的輸出結果是()
#include“stdio.h"
funcl(inta,intb)
{return(a+b);
}
func2(inta,intb)
{return(a-b);
)
func3(int(*t)(intx,inty),intx,inty)
{return(*t)(x,y);
)
voidmain()
{intx,(*p)(int,int);
p=funcl;
x=func3(p,9,3);
x+=func3(func2,8,3);
printf("%d\n”,x);
}
A.9B.17C.3D.27
12.設有說明int(*ptr)();,則其中標識符ptr是()
A.一個指向整型變量的指針B.一個函數名
C.一個指針,它指向一個函數值是int的函數D.定義不合法
13.下列程序執(zhí)行后的輸出結果是()
#include“stdio.h"
voidfunc(int*a,intb[])
{b[0]=*a+6;
)
voidmain()
{inta,b[5];
a=0;
b[0]=3;
func(&a,b);
printf("%d\n”,b⑼);
}
A.6B.7C.8D.9
14.下述程序的輸出結果是()
#include“stdio.h"
voidprt(int*x)
{printf("%d\n”,++*x);
)
voidmain()
{inty=30;
prt(&y);
)
A.30B.31C.29D.32
15.要求函數實現的功能是:交換x和y中的值,且通過正確調用返回交換結果。下面的
函數設計中不能正確實現執(zhí)行此功能的是()
A.funa(int*x,int*y)B.funb(int*x,int*y)
{intt,p=&t;*p=*x;*x=*y;*y=*p;}{intt;t=x;x=y;y=t;}
C.func(int*x,int*y)D.fund(int*x,int*y)
{intp;p=*x;*x=*y;*y=p;}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場調查合同范本
- 農業(yè)用地開挖合同范本
- 南京教育培訓合同范本
- 衛(wèi)生間包管合同范本
- 機械制造基礎模擬考試題(附參考答案)
- 茶藝師五級模擬習題+答案
- 安全生產應知應會知識習題庫及答案
- 加盟費合同范本
- 廠房場地租賃合同范本
- 出資不經營合同范本
- 公司工程竣工內部預驗收實施細則
- 監(jiān)理日志表(標準模版)
- H3C-CAS虛擬化平臺詳細介紹
- 藥房品種類別及數量清單
- 玻璃工藝學第4章 玻璃的性質
- 四川省藥械集中采購及醫(yī)藥價格監(jiān)測平臺操作指引
- 機關檔案管理工作培訓PPT課件
- 大學生安全教育課件(ppt共41張)
- 初中物理人教版八年級下冊 第1節(jié)牛頓第一定律 課件
- 網站培訓內容trswcm65表單選件用戶手冊
- 空調系統(tǒng)維保記錄表格模板
評論
0/150
提交評論