Ⅰ 誰有大一c語言考試題快考試了,跪求題庫··
單項選擇題(每小題2分,共50分)
1、一個C程序的執行是從___A__。
A、本程序的main函數開始,到main函數結束
B、本程序的main函數開始,到本程序文件的最後一個函數結束
C、本程序文件的第一個函數開始,到本程序文件的最後一個函數結束
D、本程序文件的第一個函數開始,到本程序main函數結束
2、C語言程序的基本單位是___C___。
A、程序行 B、語句
C、函數 D、字元
3、請選出可用作C語言用戶標識符的一組標識符___B___。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
主要特點
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
以上內容參考:網路-c語言
Ⅱ 二級c公共基礎題庫
c語言總復習資料
一 c語言的基本組成單位——函數。1.main();2庫函數;3.自定義函數。Abc();
二 函數的組成:1.函數的首部,函數的第一行語句(包括函數的返回值類型、函數名、函數參數類型及函數參數名)。()不可省略,例如:void main() 2.函數體,包括函數的聲明部分(聲明在該程序中所要用到的函數)、定義部分(定義函數可能要用到的變數)、執行部分(用於實現函數的功能)。
三 函數必不可少的分號。
四 輸入輸出所使用的函數:scanf、getchar、gets、printf、putchar、puts等。
五 注釋:不能嵌套。習題94頁18題。
六 大小寫區分:printf與Printf之不一樣。
七 C語言上機過程:編輯(.c)——>編譯(.obj)——>連接(.exe)——>運行得結果。
八 C程序執行是從main()函數開始,到main函數結束處結束。
九 進制轉換:著重掌握十、八、十六進制及相互轉換,原補碼(位運算中要用到)。
十 用戶自定義標識符:1.字母、數字、下劃線。2第一個字母不能為數字。3.不能與c語言所定義的關鍵字相同,但可以與預定義標識符同。
十一 常量:
1整形常量 十進制、八進制(以0開頭)、十六進制(以0x開頭)後兩種無負數。
2實型常量 2.78(小數點兩邊至少有一邊要有數字)5.48e-3(e前必有數字,e後必為整數)
3字元型常量 a.一般字元』a』 ;b.轉義字元:一般轉義字元、八\十六進制轉義字元。』\n』,』\\』,』\t』,』\」』,』\64』,』\82』,』\x42』,』\xff』,』a12』.
4字元串常量 「a」 vs 』a』
十二 變數 1.必須要先定義後使用;2變數三要素 變數類型 變數名 變數值
例1:下面不是c語言整形常量的是 A. 02 B. 0 C.038 D.0xAL
例2:合法的實型常量是A. 5E2.0 B.E-3 C.2E0 D 1.3E
例3:若有語句char a;並要將字元a賦值給變數a,則下列正確的賦值表達式是
A.a=」a」 B.a=』a』 C.a=」97」 D.a=』97』
例4:以下合法的定義是:
A. float _a=1.1e-1; B. double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3;
十三.求余原則:1.兩邊都要為整數;
2.先取絕對值求余,余數與被除數符號相同。特別要注意』%』與』/』 的區別。 -10/3 10/-3
十四. 賦值運算符及表達式:運算順序自右致左,左邊必須要是一個變數(能夠存放東西)。
a=b=c=10(定義處不能這樣); x+y=10; x+1=10;
十五. 逗號表達式:a=(b=5,b+10); b=(a=4*9,a*2),a-3; 要考慮優先順序。
十六. 類型轉換 char a=』a』; int b=32; float c=32.5;double s,d=32; s=a+b+c+d;
十七.強制類型轉換 float b=3.5;int a; a=(int)b;
例5:設有int x=11;則表達式(x++*1/3)的值是 A 3 B 4
例6:設有int a=1,b=1,c=1;a=a+++b+++c; 最終a、b、c的值是:a=4;b=2;c=1;
例7:有以下定義和語句組:float x=1;int y=2;y+=++x*++x;則最終y的值為:11
例8:int x=2;printf(「%d」,((x=4*5,x*5),x+25)); 45
例9:若變數已正確定義並賦值,以下符合c語言語法的表達式是
A.a:=b+1 B.a=b=c+2 C. int 18.5%3 D.a=a+7=c+b
十八 輸入輸出格式ch=getchar(); putchar(ch); scanf(「%d%f%c」,&a,&b,&c); printf(「%d,%d」,a,b);
例10:有以下程序,輸出的結果是
main(){int a;char c=10;float f=100.0;double x;
a=f/=c*=(x=6.5);printf(「%d %d %3.1f %3.1f\n」,a,c,f,x);}1 65 1.5 6.5 (習題集2.13)
十九.邏輯運算及其短路現象(對於邏輯與和邏輯或而言)
二十.關系運算符及表達式a>b>c 優先順序要清楚(即關>邏輯)
二十一.條件運算符及表達式a>b?a:c>d:c:d等價與a>b?a:(c>d?c:d) 設a=1,b=2,c=3,d=4; 4
例11:以下程序的輸出是 A. d=0 c=50 B.d=0 c=2 C.d=1 c=50 D.d=1 c=2
main(){int a=3,b=4,c=2,d; d=a<!b&&(c=50)>b; printf(「d=%d c=%d」,d,s);}
二十二.if語句 例12:以下程序輸出結果是
int i=1,j=1,k=2; if((j++||k++)&&i++) printf(「%d,%d,%d\n」,i,j,k); 2,2,2
if-else語句注意:if後只能管一個語句
main(){int a=2,b=-1,c=2; if(a<b) if(b<0) c=0;
else c++; printf(「%d\n」,c);}
二十三.switch 語句 以下程序的輸出是: main(){int x=1,a=0,b=0;
switch(x) {case 0:b++;case 1:a++;case 2:a++;b++;} printf(「a=%d,b=%d\n」,a,b)} a=2,b=1
二十四.while vs do-while
main()
{int i=0,n=0;
while(n!=0){i++;++i} printf(「%d」,i);
}
main()
{int i=0,n=0;
do {i++;++i} while(n!=0); printf(「%d」,i);
}
二十五 break vs continue
注意:break語句只能出現在循環體和switch語句中而continue只出現在循體環中。
main()
{int sum,i;sum=0; for(i=10;i>0;i--) {if(i>5) continue;sum=sum+i;} printf("%d\n",sum);}
例13:以下程序的輸出是: main(){int a,y;a=5;y=0; a=7 y=7
do{ a+=2;y+=a;printf(「a=%d y=%d\n」,a,y);if(y>10) break; }while(a==7); }a=9 y=16
例14:以下程序的輸出是: main(){int k=4,n=0; for(;n<k;){n++;if(n%3!=0) continue;k--;}
printf(「%d,%d\n」,k,n);} 3,3
二十六.一維數組的定義、賦初值、引用。注意:int a[10]={0};中括弧例常量表達式 ,下標從0開始 例15:若有定義float y[5]={1,2,3};則下列描述正確的是:( )
A. y並不代表數組元素 B.定義此數組時不指定數組的寬度,定義效果一樣
C.數組含有三個元素 D.a[3]的值是3
例16:以下程序的輸出是: main(){int z,y[3]={2,3,4};z=y[y[0]];printf(「%d」,z);} 4
例17:以下程序的輸出是: main(){int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2) {k=k+p[i];i++}printf(「%d\n」,k);} 24
例18:以下程序的輸出是:
main(){int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++) n[i]=n[i]+1;printf(「%d\n」,n[k])} 0
二十七.二維數組的定義、賦初值、引用
例19:main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)
for(j=0;j<=i;j++) s+=a[i][j];printf(「%d\n」,s)} 18
例20:以下不能正確定義二維數組的是:
A int a[2][2]={{1},{2}};B int a[][2]={1,2,3};C int a[2][2]={{1},2,3}; D int a[2][]={{1,2},{3,4}};
例21:若a是一個m行n列的數組,則a[i][j]是數組的第( )個元素
A i*m+j B i*m+j+1 C i*n+j D i*n+j+1
二十八 字元數組的定義、賦初值、引用
1.char arr[10]={『h』,』e』,』l』,』l』,』o』}; 2.char arr[]={『h』,』e』,』l』,』l』,』o』,』\0』};
3.char arr[10]={「hello」}; 4.char arr[10]=」hello」;
二十九 字元串輸入輸出 若char str[10]=」hello」,arr[10]=」me」;
scanf(「%s」,str); printf(「%s」,str); gets(str); puts(str);
strcpy(arr,str); strcmp(str,arr); strlen(str); strcat(str,arr);
例22:以下程序的輸出是:
main(){char st[20]=」hel\0lo\t」;printf(「%d%d\n」,strlen(st),sizeof(st))} 3,20
例23:以下程序的輸出是:char s[]=」\\141\141abc\t」;printf(「%d\n」,strlen(s));9
三十 指針與字元串 char *a; a=」hello」; char a[10]; a=」hello」;
例24:以下選項中正確的語句組是:( ) A.char s[8];s={「Beijing」};
B.char *s;s={「Beijing」}; C.char s[8];s=」Beijing」; D.char *s;s=」Beijing」;
三十一 有參函數的聲明、定義、與調用。
float add(float x,float y);/*函數的聲明*/
mai()
{int a=3.5,b=4.0,d;
d=add(a,b);/*函數的調用*/
}
float add(float x,float y)/*函數的定義*/
{return x+y;}
三十二 函數的嵌套調用與遞歸調用
double fun1(double a) {return a*=a;}
double fun2(double x,double y)
{ double a=0,b=0;
a=fun1(x);b=fun1(y);
return (int)(a+b);}
main()
{double w;w=fun2(1.1,2.0);
printf("%f\n",w);} /*嵌套調用*/
long fib(int n)
{if(n>2) return (fib(n-1)+fib(n-2));
else return 2;}
main(){printf(「%d\n」,fib(3));}/*遞歸調用*/
三十三 函數中的值傳遞與地址傳遞(不管是傳遞什麼,實質都是傳值,只不過一個是傳遞地址值而已)
func(int a){a=100;} func(int a[]) {a[0]=100;}
main(){int a=10;func(a);printf(「%d」,a);} main(){int a[1];a[0]=10;func(a);printf(「%d」,a[0]);}
三十四 局部變數與全局變數:局部變數的存儲類型分為自動型(auto)、寄存器型(register)、靜態類型(static),其中auto型和register型的變數的存儲空間是動態的,程序一結束,其值就消失。而static類型的變數,程序結束後其值仍然存在。全局變數是靜態的變數。
int a=5;
fun(int b) {static int a=10;a+=b++;printf(「%d」,a);}
main(){int c=20;fun(c);a+=c++;printf(「%d\n」,a);} 3025 如果在main中再加一個fun(c)呢?305025
三十五 宏命令與文件包含
#define N 10
#define S(x) x*x/*只要把這三個define語句放到一個文件hong.h裡面*/
#define f(x) (x*x)/*再在主函數前加一個#include 「hong.h」,程序運行結果一樣*/
main(){int i1,i2; i1=1000/S(N); i2=1000/f(N); printf(「%d %d」,i1,i2);}1000 10
三十六 指針變數的定義、初始化、運算
main()
{int n=5,*p=&n;printf(「the address is :%d\n」,p);
printf(「the data is:%d\n」,*p);
printf(「&*p is:%d\n」,&*p);
printf(「*&nis:%d\n」,*&n);}
例24:設有定義int n=0,*p=&n;則正確的賦值語句是:A. p=1; B.*p=&n; A選項不行,因p中應存放一個地址值對於B選項,因p已經指向了n這個存儲單元,實際上相當於n=5 。
三十七 指針與一維數組
int a[10],*p;/*a與p是不同的,a是數組名是常量,不能執行a++;a+=1的操作,p則可以*/
p=&a[0];p=a;/*這兩個語句等價,都是讓p指針指向這個數組*/
執行上述語句後:p[i]等價於a[i];*(p+i)等價於*(a+i)
三十八 指針與二維數組:下面給出了引用二維數組第i行第j列元素的不同方式
1. a[i][j];
2. 因a[i]表示第i行的首地址,a[i]+j表示第i行第j列的地址,所以*(a[i]+j)表示第i行第j列的值。
3. 又因a[i]可以寫成*(a+i),所以2中的表達式又可以寫成*(*(a+i)+j)。
4. 把1中的a[i]變成*(a+i),後面的不變,故又可寫成(*(a+i))[j]。
三十九 通過行指針引用二維數組
int a[4][4],(*p)[4];p=a;
四十 通過指針數組引用二維數組元素
int *p[4],a[4][4]; for(i=0;i<4;i++) p[i]=a[i];
以上兩個知識點,像以上這樣賦值後,要引用第i行第j列元素時,只需要把a改成p即可。
四十一 函數指針與指針函數
int f(int x) {……} main() {int (*p)(); int a,b=2;p=f;a=(*p)(b); a=f(b);a=p(b);……}
函數指針:返回值是指針(地址)的函數。 int *func(int a,int b);
例25:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i<=9,下列對數組引用不正確的是:
A. a[p-a] B. *(&a[i]) C. p[i] D.a[10]
例 26:若定義int a[3][2];能正確表示t數組元素的地址的表達式是 A. &a[3][2] B.a[3] C. a[1] D.*a[2]
例28:以下程序輸出結果是:A. 69825 B.63825 C.6385 D.693825
main(){char ch[2][5]={「6937」,」8254」},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i];
for(i=0;i<2;i++) for(j=0;p[i][j]>』\0』;j+=2) s=10*s+p[i][j]-『0』; printf(「%d\n」,s); }
四十二 結構體的定義、賦初值
struct student {int num;char name[10];} *p,stu[2]={{123,」zhang」},{124,」li」}};p=stu;
typedef struct student {} STU; 在這個語句後就可以用STU來定義結構體變數了。
例:STU a,*p;等價於 struct student a,*p;
四十三 結構體變數的引用
printf(「%d」,stu[1].num); printf(「%d」,stu[1].name ); printf(「%d」,p[1]->num);
printf(「%d」,p[1]->name); printf(「%d」,stu);則不對
四十四 malloc、calloc、free函數及鏈表的操作 鏈表操作見書p120 int *p,*pint; float *q; p=(int*)malloc(sizeof(int)); q=(float*)malloc(sizeof(float)); pint=(int*)calloc(10,sizeof(int)); free(p); 習題集12章16題。
例29:下列賦值語句正確的是 struct worker {int num;char *name;}*p,a;
A. worker.num=1; B.p.num=1; C.*p.num=1; D.a.num=1;
例30:在16位pc環境下,下列程序運行的結果是:(此題大家有印象即可,不必深究)
struct worker {int num;char *name;}a; main(){printf(「%d」,sizeof(a))} 4(若32位則是8)
例31:設有如下定義:struct ss{char name[10]:int age:char sex:}stu[3],*p=std;下面各輸入語句錯誤的是:( )
A. scanf(「%d」,&(*p).age); B.scanf(「%s」,&std.name); C.scanf(「%c」,&std[0].sex); D.scanf(「%c」,&(p->sex));
因為std是表示是地址,而地址表示不應該是這樣的,應該是&(std->name);
四十五 位運算 ~、<<、>>、|、& 、^、例5.4
四十六 文件的打開及對文件的操作 FILE *fp;char str[10]=」hello」;int a,b;
1. if((fp=fopen(「in.dat」,」rb」))==NULL) printf(「Unable to open the file!」);/*重點注意打開文件的方式,特別注意以」w」,」r+」,」w+」,」a」方式打開,對文件的影響。*/
2. fclose(fp);/*關閉文件*/ feof(fp);/*測試文件是否結束,如到了則返回1,否則返回0*/
3. fseek(fp,12,SEEK_SET) /*將文件指針移動到文件起始位置後面的第12個位元組處*/
4. fseek(fp,12,SEEK_END)/* 將文件指針移動到文件倒數第12個位元組處*/
5. fseek(fp,0,SEEK_SET) /*將文件指針移動到文件起始位置同rewind(fp)函數*/
6. fseek(fp,12,SEEK_END)/* 將文件指針移動到文件末尾*/
7. ftell(fp); ch=fgetc(fp); putc(ch,fp); fgets(str,n,fp); fputs(str,fp);
8. fscanf(fp,」%d%d」,&a,&b);/*從fp所指向的文件中取出的兩數分別存放在a和b中*/
9. fprintf(fp,」%d%d」,a,b);/*把a和b中所存放的數據輸出(存放)到fp所指向的文件中*/
10. fread(str,size,count,fp);/*從fp所指向的文件中取出size*count個位元組存放到str數組中*/
11. fwrite(str,size,count,fp);/*把str數組中的size*count個位元組存放到fp所指向的文件中*/
你有相關的書嗎?這是我當年考試用過的一些資料呀!希望對你有幫助!!
Ⅲ 求一份大一c語言考試試卷,加答案
附件上傳失敗...
C語言期末考試題及答案(1)
1、構成C語言的基本單位是___B____。
過程?
函數?
語句?
命令?
2、設x為整型變數,不能正確表達數學關系:5<x<10的c語言表達式是__B___。
5
x>5&&x<10?
x==6||x==7||x==8||x==9?
!(x<=5)&&(x<10)?
3、在C語言中,邏輯運算符的優先順序從高到低的排列順序為__D___。
&&、||、!?
||、&&、!?
&&、!、||?
!、&&、||?
4、下面語句中,正確的是__D___。
printf("%c\n","student");?
printf("%c\n","c");?
printf("%s\n",&a);?
printf("%s\n","hello");?
5、對於for(表達式1;;表達式3)可以理解為__B___。
for(表達式1;0;表達式3)?
for(表達式1;1;表達式3)?
for(表達式1;表達式1;表達式3)?
for(表達式1;表達式3;表達式3)?
6、執行下面程序段的結果是__B___。 main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d",a,b); }
a=1,b=1?
a=2,b=1?
a=1,b=0?
a=2,b=2?
7、執行下面程序段的結果是__D___。 int x=0; do { printf(「%2d」,x--); }while(x);
列印出321?
列印出23?
不列印任何結果?
陷入死循環?
8、設x=10,y=5;z=15,執行下面一段程序後z的結果是__C___。 If(x>y) if(y>z)x=y; else z=y;
7?
6?
5?
4?
9、如果一個函數被說明為static,那麼__B___。
該函數只能被main函數調用?
該函數能被當前文件的函數調用,但不能被其他文件的函數調用?
該函數不能被當前文件的函數調用,可以被其他文件的函數調用?
任何文件的函數都可以調用該函數?
10、下面關於局部變數的描述中,錯誤的是__D___。
函數的局部變數的有效范圍只能在本函數?
函數的形式參數也是局部變數?
局部變數的名稱不能和函數同名稱?
不同的函數中不能定義相同名稱的局部變數?
11、下列初始化字元數組的語句中,錯誤的是__A___。
char str[5]="hello";?
char str[]={'h','e','l','l','o','\0'};?
char str[5]={"hi"};?
char str[100]="";?
12、引用數組元素時,數組下標可以是__D___。
整型常量?
整型變數?
整型表達式?
以上均可?
13、 已知:char str[10],*p=str; 下面的語句中正確的是__B___。
str="ABC";?
p="ABC";?
*str="ABC";?
*p="ABC";?
14、下面語句中,錯誤的是___D__。
int i;int *p;p=&i;?
int i,*p;p=&a;?
int i,*p=&a;?
int i,*p;*p=i;?
15、下面對於結構體類型的描述正確的是__A___。
結構體類型的大小為各成員變數所佔內存的總和?
結構體類型變數與簡單數據類型變數的引用規則一致。?
結構體類型的大小為其成員中所佔內存空間最大的變數的大小?
結構體類型的大小為其最後一個成員中所佔內存空間的大小?
16、C語言規定:在一個源程序中,main函數的位置____C____。
必須在最開始?
必須在系統調用的庫函數的後面?
可以任意?
必須在最後?
17、表達式18/4*sqrt(4.0)/8值的數據類型是 ___C____。
int?
float?
double?
不確定?
18、在c語言中,char型數據在內存中的存儲形式是 ___D___。
補碼?
反碼?
原碼?
ASCII碼?
19、閱讀以下程序,當輸入的數據形式為:25,13,10<CR>時,正確的輸出結果為___D___。 main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z); }
x+y+z=48?
x+y+z=35?
x+z=35?
不能確定?
20、有如下程序 void main() { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(「%f\n」,y); } 該程序的輸出結果是( C )。
0.000000?
0.250000?
0.500000?
1.000000?
21、判斷char型變數s是否為小寫字母的正確表達式是__C____。
'a'<=s<='z'?
(s>='a')&(s<='z')?
(s>='a')&&(s<='z')?
('a'<=s)and('z'>=s)?
22、執行以下語句後,y 的值為___A___。 int x,y,z; x=y=z=0; ++x || ++y && ++z;
0?
1?
2?
不確定值?
23、有如下程序段: int number=0; while(number++<=3) printf(「%d\n」,number++); 則正確的執行結果是___C___。
2 3 4?
0 1 2?
1 3?
2 4?
24、有如下程序 void main() { int n=9; while(n>6) { n--; printf(「%d」,n); } } 該程序段的輸出結果是__B___。
987?
876?
8765?
9876?
25、要使以下程序段輸出10個整數,請在空格中填入一個整數。 for(i=0;i<=___B___;printf("%d\n",i+=2));
15?
18?
20?
10?
26、設函數fun的定義形式為: fun(char ch,float x){…} 則以下對函數fun的調用語句中正確的是___B___。
fun(「abc」,3)?
t=fun(『D』,5)?
fun(『ab』,3)?
fun(『78』,1)?
27、函數求sum(int n)的功能是計算自然數1到n的和,即1+2+…+n。 Main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 請從備選答案中選擇一答案,補全程序。
s=s+n;return s;?
s=s+i;return s;?
return s;?
return s+=I;?
28、設函數fun的定義形式為 int fun(int a[],int n) { int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s; } main() { int a[10]={1,2,3,4,5}; printf("sum=%d", fun(&a[2],2)); } 則程序的運行結果為___C___。
3?
5?
7?
9?
29、若有說明:int a[10];則對數組元素的正確引用是___D____。
a[10]?
a[3,5]?
a(5)?
a[10-10]?
30、以下不正確的定義語句是___B___。
double x[5]={2.0,4,0,6,0,8,0,10.0};?
int y[5]={0,1,3,5,7,9};?
char c1[]={'1','2','3','4','5'};?
char c2[]={'\x10','\xa','\x8'};?
31、下面程序的運行結果是___B____。 #include "stdio.h" main() { char str[]="SWLIA",c; int k; for(k=0;(c=str[k])!='\0';k++) { switch(c) { case 'I':++k;break; c
SWA?
SW*?
SW*A?
SW?
32、以下能正確進行字元串賦值操作的是___D___。
char s[5]={"12345"};?
char s[5]={'1','2','3','4','5',『6』};?
char *s;*s="12345";?
char *s="12345";?
33、以下程序段的運行結果是___C___。 Char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; }
PROgram?
PROGRAM?
PRO?
proGRAM?
34、若有說明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,則以下敘述正確的是__C____。
*pc[0]代表的是字元串"aaa"的首地址?
*pc[0]代表的是字元'a'的首地址?
pc[0]代表的是字元串"aaa"的首地址?
pc[0]代表的是字元'a'的首地址?
35、下列程序的運行結果是___B___。 #include <stdio.h> #include <string.h> void f (char *s, int n) { char a,*q1,*q2; q1=s;q2=s+n-1; while(q1<q2) { a=*q1++; *q1=*q2--; *q2=a;} } main() { char b[]="ABCDEFG"; f(b, s
GAGGAGA?
AGAAGAG?
GFEDCBA?
AGADAGA?
36、定義如下的結構體描述同學信息 struct Student { unsigned long id; char name[30]; char class[30]; }s; 假設此同學的序號為1002,姓名為黎明,班級為冶金3班,則描述正確的為___C__。
id=1002; name=黎明; class=冶金3班;?
id=1002; name=」黎明」; class=」冶金3班」;?
s.id=1002; s.name=」黎明」; s.class=」冶金3班」;?
s.id=1002; s.name=黎明; s.class=冶金3班;?
37、用來描述C程序中注釋的是__C___。
//?
?
**?
38、下列變數中合法的定義是__A___。
short _a=2-1?
long if=0xabcL?
double 1_d=1.5e2?
float a=1.5e2.7?
39、當c的值不為0時,能夠將c的值賦給變數a和b的是__C___
c=b=a?
(a=c)||(b=c)?
(a=c)&&(b=c)?
a=c=b?
40、設有以下程序段,執行後的輸出結果是___B__ int x=100,y=200; printf("%d",(x,y));
100?
200?
100,200?
編譯出錯
C語言期末考試題及答案(2)
1、若執行下面的程序時從鍵盤輸入10,則輸出是__B__ main( ) { int a; scanf(「%d」,&a); if(a++>10) printf(「%d\n」,++a); else printf("%d\n",a--); }
12?
11?
10?
9?
2、執行下面程序段的結果是__D___ int x=0; do { printf(「%2d」,x--); }while(x);
列印出321?
列印出23?
不列印任何結果?
陷入死循環?
3、執行與句:for(n=0;n++<4; ); 後,變數n的值是__C__。
3?
4?
5?
不定?
4、以下關於循環的描述中,錯誤的是__D___。
可以用for語句實現的循環一定可以用while語句實現?
可以用while語句實現的循環一定可以用for語句實現?
可以用do…while語句實現的循環一定可以用while語句實現?
do…while語句與while語句的區別僅僅是關鍵字while的位置不同?
5、下面的描述錯誤的是__C__。
函數可以有多個形式參數?
函數可以沒有返回值?
函數內可以嵌套定義函數?
函數可以被其他函數調用?
6、函數返回值的類型是由__A__決定的。
定義函數時指定的返回類型?
函數中return語句的表達式類型?
主調函數的實際參數類型?
主調函數的返回值類型?
7、定義了一維int型數組a[10]後,下面錯誤的引用是__B__。
a[0]=1;?
a[10]=2;?
a[0]=5*2;?
a[1]=a[2]*a[0];?
8、定義了int型二維數組a[6][7]後,數組元素a[3][4]前的數組元素個數為__B__。
24?
25?
18?
17?
9、下面語句中,錯誤的是__D__。
int i; int *p; p=&i;?
int i,*p; p=&a;?
int i,*p=&a;?
int i,*p; *p=i;?
10、 已知int型二維數組a[3][4],數組元素a[1][2]的地址不能表達為__C__。
&a[1][2]?
a[1]+2?
*a[1]+2?
*(a+1)+2?
11、C語言中,5種基本數據類型的存儲空間長度的排列順序為___A___。
char
char=int
char
char=int=long int<=float
12、假設所有變數均為整型,則表達式(a=2,b=5,b++,a+b)的值是 ___B___。
7?
8?
6?
2?
13、若有說明語句:char c='\72';則變數c ___A___。
包含1個字元?
包含2個字元?
包含3個字元?
說明不合法,c的值不確定?
14、若x,y均定義為整型,z定義為double型,以下不合法的scanf函數調用語句是___C___。
scanf("%d%lx,%le",&x,&y,&z);?
scanf("%2d * %d%lf",&x,&y,&z);?
scanf("%x%*d%o",&x,&y,&z);?
scanf("%x%o%6.2f",&x,&y,&z);?
15、若輸入字元串:abcde<回車>,則以下while循環體將執行___A___次。 while((ch=getchar())=='e') printf("*");
1次?
死循環?
0次?
5次?
16、執行下面的程序段後,k的值是___C___。 k=1;n=263; do{k*=n%10;n/=10;}while(n);
3?
63?
36?
2?
17、下面程序段中循環的執行次數是___B___。 a=10;b=0; do{b+=2;a-=2+b;}while(a>=0);
10?
3?
5?
4?
18、下面程序段的運行結果是__D____。 x=2; do{printf("*");x--;}while(!x==0);
*?
***?
沒有輸出?
**?
19、下面程序段的運行結果是___B___。 i=1;s=1;a=0; do{a=a+s*i;s=-s;i++;}while(i<=10); printf("%d",a);
2?
-2?
3?
0?
20、有如下程序 void main() { int a=2,b=-1,c=2; if(a) if(b<0) c=0; else c++; printf("%d\n",c); } 該程序的輸出結果是___A___。
0?
1?
2?
3?
21、程序中對fun函數有如下說明 void fun(); 下面說明是錯誤的是___B___。
fun函數無返回值?
fun函數的返回值可以是任意的數據類型?
fun函數沒有形式參數?
void 可以省略?
22、函數求sum(int n)的功能是計算自然數1到n的和,即1+2+…+n。 main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 請從備選答案中選擇一答案,補全程序。
s=s+n; return s;?
s=s+i; return s;?
return s;?
return s+=i;?
23、 有以下程序 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf()__A___
4,3,7?
3,4,7?
5,2,7?
2,5,7?
24、若有說明:int a[][3]={1,2,3,4,5,6,7};則數組a第一維的大小是___B___。
2?
3?
4?
無確定值?
25、判斷字元串s1是否大於字元串s2,應當使用___D____。
if(s1>s2)?
if(strcmp(s1,s2))?
if(strcmp(s2,s1)>0)?
if(strcmp(s1,s2)>0)?
26、當運行以下程序時,從鍵盤輸入:AhaMA Aha<CR> <CR>表示回車,則下面程序的運行結果是___A____。 #include "stdio.h" main() { char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') { if(s[i]==c)
ahAMa?
AhAMa?
AhAMa ahA?
ahAMa ahA?
27、以下程序執行後a的值為___C____。main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }
-1?
0?
1?
2?
28、以下能正確讀入字元串的程序段是____C___。
char *p;scanf("%s", p);?
char str[10];scanf("%s", &str);?
char str[10], *p;p=str; scanf("%s", p);?
char str[10], *p=str;scanf("%s", p[1]);?
29、若有定義:int i, x[3][4];,則不能將x[1][1]的值賦給變數i的語句是___B___。
i=x[1][1] ?
i=*(*(x+1))?
i=*(*(x+1)+1)?
i=*(x[1]+1)?
30、下面程序的運行結果是____A___。 # include <stdio.h> # include <string.h> fun(char *s) { char t,*a,*z; a=s; z=s+strlen(s)-1; while(a++<z--) { t=*a++; *a=*z--; *z=t;} } main() { char *p; p="a
abdddfg?
afcdebg?
gbedcfa?
gfedcba?
31、用來描述C程序中注釋的是__C___
/ /?
?
* *?
32、對於"xy\n\102\\\'"字元串的長度是__B___
7?
6?
12?
13?
33、已知:int x=10;執行語句x-=x+x;後x的值是__A___
-10?
10?
-20?
20?
34、下列描述中,正確的是__A___
所有的輸入/輸出都是通過調用庫函數處理的?
所有的輸入/輸出都是通過輸入/輸出語句實現的?
getchar和putchar可以省略#include?
在輸入/輸出格式中的*表示跳過數據的含義?
35、設x=10,y=5;z=15,執行下面一段程序後z的結果是__C___ if(x>y) if(y>z)x=y; else z=y;
7?
6?
5?
4?
36、執行下面程序段的結果是__D___ int x=0; do { printf(「%2d」,x--); }while(x);
列印出321?
列印出23?
不列印任何結果?
陷入死循環?
37、以下關於switch語句和break語句的描述正確的是__D___
在switch語句中必須使用break語句?
break語句只能用於switch語句體中?
break語句只能用於循環語句中?
在switch語句中可以使用break語句?
38、與語句while(!x)等價的語句是__A___
while(x==0)?
while(x!=0)?
while(x!=1)?
while(~x)?
39、下面的描述錯誤的是__C___
?函數可以有多個形式參數?
?函數可以沒有返回值?
?函數內可以嵌套定義函數?
?函數可以被其他函數調用?
40、 下面關於局部變數的描述中,錯誤的是__D___
?函數的局部變數的有效范圍只能在本函數?
?函數的形式參數也是局部變數?
?局部變數的名稱不能和函數同名稱?
?不同的函數中不能定義相同名稱的局部變
Ⅳ 大一C語言期末考試求題庫
一、單項選擇題(共10題,每題2分,共20分。在備選答案中選擇一個最佳答案。多選、錯選、不選不得分)
1、不是C語言基本數據類型的是( )。
A、指針類型 B、整型
C、字元型 D、實型
2、設有:int a=3, b= 4, c= 5,x , y; 表達式0 && (x=a)&&(y=b)的值為( )。
A、1 B、0 C、3 D、4
3、設有語句 int a=3 ; 則執行了語句 a+=6;後,變數a 的值為( )。
A、18 B、-3 C、9 D、12
4、執行以下程序段後,輸出的y值為( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=&a[0];
y=*p; printf(「%d」,y);
}
A、2 B、4 C、6 D、8
5、有定義語句:float a[4];則分配給數組a的內存空間為( )位元組。
A、 20 B、 12 C、 16 C、10
6、以下描述錯誤的是( )。
A、break語句可用於while語句。
B、break語句和continue語句的作用是一樣的。
C、在循環語句中使用break語句是為了跳出循環,提前結束循環。
D、在循環語句中使用continue語句是為了結束本次循環,而不終止整個循環。
7、C語言中規定,if語句的嵌套結構中,else總是( )。
A、與最近的if 配對 B、與第一個if 配對
C、按縮進位置相同的if配對 D、與最近的且尚未配對的if 配對
8、說明語句「int (*p)( ); 」的含義是( ) 。
A、p是一個指向一維數組的指針變數。
B、p是指針變數,指向一個整型數據。
C、p是一個指向函數的指針,該函數返回一個int型數據。
D、以上都不對。
9、以下對二維數組c的正確聲明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段執行後輸出結果為( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、編譯出錯
二、填空題(共7題,共10空,每空1分,共10分。將答案填在題中橫線上)
1、C語言提供的三種邏輯運算符是 && 、 || 和!;
2、函數的返回值是通過函數中的 return 語句獲得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定義後,a[2][2]的值為_6__ _;
4、對於"int *pa[5];" pa是一個具有5個元素的_數組指針_,每個元素是一個指向int型變數的__指針__;
5、單向鏈表的尾節點next指針應賦值__ NULL___;
6、在語句for(x=1,y=3;x>y;y++)中循環體執行的次數為 0 。
7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題(共2題,共5空,每空4分,共20分)
1、以下程序完成計算1-1/2+1/3-1/4+1/5+……前n 項和,請填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是從鍵盤輸入n個整數,統計其中正數、0、負數的個數,請填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(「%d」, &a);
if(a>0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(「正數:&d個,零:%d個,負數:%d個\n」, count1,count2,count3 );
}
四、運行程序結果題(共4題,每題6分,共24分)
1、寫出程序運行結果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=&x; p2=&y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
運行結果為:
程序有錯,不能運行!或寫:
x=2,y=1
2、寫出程序運行結果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(「min=%d\n」,min(a,b));
}
運行結果為:
程序有錯,不能運行!或寫:
max=6
min=2
3、寫出程序運行結果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(「sum=%d\n」,sum);
}
運行結果為:
程序有錯,不能運行!或寫:
sum=15
4、寫出程序運行結果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(「f=%d\n」,&f);
}
運行結果為:
程序有錯,不能運行!或寫:
f=不確定
五、程序設計題(共2題,每題13分,共26分)
1、將一個數組按逆序存放,如元素1、2、3、4、5,按逆序存放後為5、4、3、2、1。
Ⅳ 計算機二級c語言程序設計有哪些題型
全國計算機二級C語言程序設計包括40個單選題(每題一分)和三道操作題(60分)。
單選題中1~10題為二級公共基礎知識,單選題的11~40題是C語言的內容。
操作題包括程序填空(18分)、程序改錯(18分)和編程題(24分)各一題。
程序填空是將一個完整的程序,扣掉兩到三處,讓考生將它填寫完整。由於每位考生具體抽到的題目不同,程序填空有2到3個空要填。
程序改錯也是一個完整的程序,其中有2~3處錯誤要求考生將他們改正。
編程題是要求考生編寫一個程序,然後運行出題干要求的結果。題目中主函數main()會完整給出,在主函數中將調用fun()函數,fun函數由考生自己編寫。編程題以運行結果給分,所編寫完成後必須運行,否則沒分。
二級C語言程序設計考試涉及公共基礎知識和C語言兩塊。公共基礎知識內容包括數據結構與演算法、程序設計基礎、軟體工程基礎、資料庫設計基礎四部分。考10個單選每個1分。
C語言有基礎知識(C語言概述、常量與變數、數據類型、運算符和表達式),編程三大結構(順序結構、選擇結構、循環結構),數組、函數和指針,其他內容(預處理命令、結構體和共用體、位運算、文件)四大部分內容。重點是第二、三部分。
Ⅵ c語言計算機二級考試選擇題如圖
全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=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=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
Ⅶ 計算機二級c語言題庫及答案