【渝粤题库】陕西师范大学200681C语言程序设计 作业(高起专、高起本)
一、單選題
1.有如下程序段,其執行后的輸出結果為( )。
main()
{int i=8;
while(i>1) {–i; printf(“%d”,i–);}
}
A. 753 B. 7531 C. 8642 D. 864
2.在下列的數組定義中,哪一個有語法錯誤( )。
A. int a[]={1,2,3,4,5}; B. int a[10]={0};
C. int a[][]={0,2,4,6,8}; D. int a[][5]={1,2,3,4,5,6,7};
3.有如下程序:
#define N 2
#define M N+1
#define NUM 2*(M)-1
main()
{int i;
for(i=1;i<=NUM;i++)
printf(“%d\n”,i);
}
該程序中的for循環執行的次數是( )。
A 5 B 4 C 3 D 6
4.設x、y均為整型變量,且x=8,y=7,則以下語句的輸出結果是( )。
printf(“%d,%d\n”,++x,y++);
A 9,6 B 9,7 C 8,7 D 9,5
5.表達式x=x+1表示成增量表達式為( )。
A x+或++x B x++或+x C x++或++x D x+或+x
6.instrlen函數的功能是計算str所指字符的長度,并作為函數值返回。請填空。
int instrlen (char str)
{int i;
for(i=0; ( ) ;i++);
return (i);
}
A st [i] B sr[i] C str[i] D tr[i]
7.當不需要函數返回任何值時,則應把該函數類型定義為( )。
A void B viod C vdio Dvid
8.如有以下定義 int a[10]={1,2,3};則數組x在內存中所占字節數是( )。
A 21 B 19 C 22 D20
9.若有以下語句
main()
{char s=”1234\”\067”;
printf(“%s”,s);
輸出結果為( )。
A 123”66 B 123”67 C 113”67 D 133”67
10.若有以下程序段:
main()
{int a=511;
unsigned char p;
p=(unsigned char)&a;
printf(“%d”,p);
}
輸出結果為( )。
A 254 B 253 C 255 D 256
11.若有定義語句 “int a=25,b=10,c=15;”以下語句執行結果是( )。
if(a++<=25 &&b–<=2 && c++)
printf(“%d,%d,%d\n”,a,b,c);
else printf(“###%d,%d,%d\n”,a,b,c);
A ###26,8,15 B ###26,9,15 C ###25,9,15 D###26,9,16
12.設有下列運算符:<<、/、++、&&、<=,其中優先級最高的是( )。
A << B / C ++ D &&
13.若a為int 型變量,則以下哪一個語句是正確的( )。
A.int p=a; B. int p =a; C. int p=&a; D. int p=&a;
14.在以下一組運算符中,優先級最低的運符是( )。
A.! B.= C.== D. ,
15.若變量a為char類型,能正確判斷出a為數字字母的表達式為( )。
A.0<=a<9 B.’0’<=a<=’9’
C.0<=a && a<=9 D.’0’<=a && a<=’9’
16.有如下程序:
main()
{int i,j;
for (i=1;i<=4;j++) j=j+i;
printf(“%d\n”,j);
}
該程序的的執行結果是( )。
A.不確定 B.6 C.10 D.死循環
17.以下程序中,while循環的循環次數是( )。
main()
{int i=2;
while(–i)
{printf(“%d”,i–);
if (i) i=i+3;
else break;
}
}
A.1 B. 2 C.3 D.死循環
18.以下程序的輸出結果是( )。
main()
{int i, a[3][3]={0,1,2,3,4,5,6,7,8},p=&a[0][2];
for(i=0;i<4;i+=2) printf(“%d”,p[i]);
}
A.23 B.34 C.24 D.35
19.設有如下定義:
int a[]={1,2,3,4,5,6};
int p;
則下程序段的輸出結果為( )。
p=a+1;
(p+4)+=(p+2)+=2;
printf(“%d,%d\n”,(p+4),(p+2));
A.5,9 B.12,6 C.6,12 D.9,5
29.在c語言中,可以提高執行效率的變量存儲類別是( )。
A.auto B.register C.static D.extern
21.以下程序運行時,如果從鍵盤輸入ABCDEFGH<回車>,則輸出結果為( )。
#include “stdio.h”
#include “ctype.h”
int f(char s[])
{int i=0;
while(s[i++]!=’\0’);
return (i);
}
main()
{char str[10];
scanf(“%s”,str);
printf(“%d\n”,f(str));}
A.7 B.8 C.9 D.10
22.若要對C盤上temp子目錄下名為my.bat的文本文件進行讀寫操作,則下面符合此要求的打開文件的函數調用為( )。
A.fopen(“c:\temp\my.bat”,”rw”)
B.fopen(“c:\temp\my.bat”,”rw”)
C.fopen(“c:\temp\my.bat”,”r+”)
D.fopen(“c:\temp\my.bat”,”r+”)
23.設有定義如下:#define F(N) 2N,表達式F(2+3)的值是( )。
A. 7 B. 8 C. 9 D.6
24.設有定義如下:int a=9,b=9,c=9; 順序執行下列語句,變量b中的值是( )。
c=(a-=(b-5));
c=(a%11)+(b=3);
A. 2 B. 3 C. 4 D.5
25.算術表達式 80-‘a’+40/2的運算結果為( )類型。
A. In B. It C. Int D. nt
26.下面函數要求計算兩個整數x、y之和,并通過形參z傳回該和的值,請填空。
void add(int x,int y,int z)
{( )=x+y; return;}
A. S B. z C. z D. X
27.邏輯表達式 x>10 &&x<20的相反表達式為( )。
A. !(x>10 && x<20) 或 x<=10 || x>=20
B. !(x>10 && x<20) 或 x<=10 || x=20
C. !(x>10 && x<20) 或 x<=10 || x>20
D. !(x>10 && x<20) 或 x<10 || x>=20
28.假定要訪問一個結構體x中的成員a,則表示方法為( )。
A. x.a B. xa C. x.A D. ax
29.如有以下程序
main()
{char s[10]={‘1’,’2’,’3’};
s[4]=’5’;
s[5]=’\0’;
printf(“%s”,s);}
則輸出結果為( )。
A. 122 B. 223 C. 123 D. 133
30.若有定義:
int a=511,b=&a;
則 printf(“%o”,b);的輸出結果為( )。
A. 776 B. 767 C. 777 D. 677
31.設i,j,k均為int 型變量,則執行完下面的for循環后,k的值為( )。
for(i=0,j=10;i<=j;i++,j–) k=i+j;
A. 10 B. 9 C. 8 D. 11
32.設字符型變量a=4,b=6,計算表達式 c=(a^b)<<2后的二進制值是( )。
A. 1001 B. 1010 C. 1000 D. 1100
33.下面的哪一個保留字不能作為函數返回類型( )。
A. long B. auto C. float D. char
34.以下程序的輸出結果是( )。C
main()
{int k=017;
printf(“%d,%o,%x\n”,k,k,k);
}
A. 17,17,17 B. 17,21,11 C. 15,17,f D. 15,017,0xf
35.在C語言中,合法的字符常量是( )。
A. ’\xfg’ B. ’\083’ C. ”\0” D. ’\r’
36.以下程序的輸出結果為( )。
main()
{char x=012;
printf(“%o\n”,x<<2);
}
A. 10 B. 50 C. 40 D. 48
37.若有以下語句,使得a=’a’,d=9,c=’b’,則輸入格式正確的是(u 空格,CR為換行符)( )。
int i;
char a,b;
scanf(“%c%d%c”,&a,&i,&b);
A. au9ub B. a9ub C. a9b D. a CR 9 CR b
38.C語言程序從( )開始執行。
A. 程序中的第一個語句 B. 程序中的第一個函數
C. 程序中的第一個可執行語句 D. 程序中的main函數
39.假定a為一維數組,pa是指向數組a的指針變量,則訪問a[i]的正確方式為( )。
A. a+i B. (pa+i) C. pa+i D. pa+i
40.以下程序運行后,輸出結果為( )。
main()
{static char s[]=”ABCDEFGH”, t=”ABCDFGH”;
int i;
for (i=0;s[i]==t[i];i++);
printf(“%d\n”,t[i]-s[i]);}
A. 0 B. 1 C. –1 D. 死循環
41.下列程序的輸出是( )
main()
{
unsigned a=32765;
a=a+3;
printf(“a=%d\n”,a);
}
A. a=32768 B. a=-32768 C. a=-1 D. a=1
42.如下列變量均合法定義,則以下合法的賦值表達式是( )
A. a=int(3.5) B. 3=a C. ++(a+b) D. a<<=3
43.下列敘述正確的是( )
A. C語言源程序可以直接在DOS環境中運行
B.Turbo C系統不提供編譯和連接C 程序的功能
C.編譯C語言源程序得到目標程序可以直接在DOS環境中運行
D.C語言源程序連接得到的可執行程序可以直接在DOS環境中運行
44.下列敘述錯誤的是( )
A.break語句可以使程序從switch語句中跳出來
B.continue 語句是為了結束本次循環,而不是終止整個循環的執行
C.break語句是為了使程序流程跳出循環體,提前結束循環
D.在switch語句中使用continue 和break語句的作用相同
45.若要在程序中使用標準輸入輸出庫函數時,則必須在程序的開始用#include命令中使用( )頭文件。
A. stdio.h B. stdi.h C. stdo.h D. stdio
46.設有語句int a=5;則執行語句a+=a-=aa;后,變量a的值是( )。
A.-41 B. -30 C. -42 D. -40
47.數學表達式 +2x-3y(x-y)的c語言表達式是( )。
A. (x+y)/(x-y)+2x-3y(x-y)
B. (x+y)/(x+y)+2x-3y(x-y)
C. (x-y)/(x-y)+2x-3y(x-y)
D. (x+y)/(x-y)+2x+3y(x-y)
48.假定x和y為double型,則表達式x=3,y=x+x/2的值是( )。
A. 500000 B. 501000 C. 500100 D. 510000
49.在每一個c語言程序中都必須包含有這樣一個函數,該函數的函數名為( )。
A. main() B. min() C. man() D. mai ()
50.( )是c語言程序的基本單位。
A. 英語 B. 函數 C. 公式 D. 數學
51.執行以下程序段后,輸出結果為( )。
main()
{int a[]={1,2,3,4,5,6};
int p=a+2, q=0;
q=p+2;
printf(“%d%d\n”,p,q);
}
A. 35 B. 34 C. 36 D. 33
52.有如下程序,則其輸出結果為( )
main()
int a=3,b=-2,c=5;
if(a<b)
if(b<0) c=0;
else c++;
printf(“%d\n”, c);
}
A. 4 B. 5 C. 3 D. 6
53.下面程序的運行結果是( )。
main()
{int x=5,y=3;
printf(“%d”,(x++,++y));
}
A. 4 B. 3 C. 5 D. 6
54、有以下程序
void fun(int a,int b,int c)
{ a=3;b=4;c=5;}
main()
{
int x=1,y=2;z=3;
fun(x,y,z);
printf(“%d,%d,%d\n”,x,y,z);
}
輸出結果是( )
A. 3,4,5 B. 1,2,3 C. 5,4,3 D. 3,2,1
55、下列敘述錯誤的是( )
A. if語句允許用戶選擇是否執行某一個操作
B. if~else語句允許用戶選擇是否執行兩個操作中的某一個操作
C. switch語句允許用戶選擇執行多個操作的某一個操作
D. 多分支選擇結構只能使用switch語句實現
56、有以下定義
int a=013;
int b=15;
則表達式a&b的值為( )
A.13 B.1 C.15 D.4
57、下述對C語言字符數組的描述中錯誤的是( )
A. 字符數組可以存放字符串
B. 字符數組中的字符串可以整體輸入輸出
C. 可以在賦值語句中通過賦值運算符“=”對字符數組整體賦值
D. 不可以用關系運算符對字符數組中的字符串進行比較
58、假定p所指對象的值為28,p+1所指對象的值為62,則p++的值為( )
A.28 B.29 C.62 D.63
59、若用數組名作為函數調用時的實參,則實際上傳遞給形參的是( )
A. 數組首元素的地址 B. 數組元素的個數
C. 數組的第一個元素的值 D. 數組中全部元素的值
60、設有如下定義
struct sk
{int a;float b;}data,p;
如有p=&data; 則對data中的a域的正確引用是( )
A. (p).a B. (p).data.a C. p.data.a D. p->data.a
61、while(!x)中的!x與下面哪個條件等價( )
A. x0 B. x!=0 C. x1 D. x!=1
62、設x和y均為邏輯值,則x||y為假的條件是( )
A. 其中一個為真 B. 其中一個為假
C. 兩者均為真 D. 兩者均為假
63、C語言規定為字符串結束標志的是( )
A. \n B. \r C. \0 D. \o
64、假定a是一個字符數組名,則元素a[5]的字節地址為( )。
A. a+5 B. a+4 C. a+3 D. a-5
65、如有以下程序段
union ss
{int i;
char a;
}s;
s.i=512
s.a=2
printf(“%d”,s.i)
則輸出結果為( )。
A. 514 B. 512 C. 504 D. 513
66、以下程序段的輸出結果是( )。
#include “string.h”
main()
{char p,q,s[80]=”ABCDEFGHIJK”;
p=”1234”;q=”5678”;
strcpy(s+2,p+2); strcpy(s+4,q+3);
printf(“%s”,s);
}
A. AB348 B. AB348 C. AB348 D. AB348
67、結構化程序設計規定的三種基本結構是順序結構、選擇結構和( )。
A. 邏輯結構 B. 循環結構 C. 公式結構 D. 函數結構
68、以下程序的輸出結果是( )。
main()
{int a=0,i;
for(i=0;i<5;i++)
switch(i)
{case 0:
case 2:a+=3;
default:a+=5;
}
}
printf(“%d\n”,a);
}
A. 30 B. 33 C. 31 D. 32
69、c語言程序中的每條基本語句以( )作為結束符。
A. 。 B. , C. ; D.}
70、設a,b和c都是int型變量,且a=7,b=8,c=9,則下列表達式!((a<b)&&!c||1)的值為( )。
A. 3 B. 2 C. 1 D. 0
71、設x,y均為int型變量,則執行語句:x=y=5;x++||++y后,y的值為( )。
A. 1 B. 3 C. 4 D. 5
72、表達式(float)25/4的值為( )。
A. 6.250001 B. 6.250000 C. 6.240000 D. 6.150000
73、函數的返回表達式的類型與函數的類型不一致時,則返回值的類型由( )決定。
A. 函數類型 B. 函數關系 C. 函數模型 D. 函數結構
74.執行以下程序段,輸出結果為( )
main()
{ int s=1,t=1,a=3,b=4;
if(a>0)s++;
if(a>b)t+=s;
else if(a==b)t=5;
else t=s++2;
printf(“%d\n”,t);
}
A.3 B.4 C. 5 D. 6
75.假定a為一數組名,則下面的哪一種表示有錯誤( )
A. a[i] B. a++ C. a D. (a+1)
76.下面標識符合法的是( )
A. a8b B. 3ab C. if D. ok?
77.如存在以下程序,則輸出結果為( )
char s[]=”\\12345\\012”;
printf(“%d\n”,strlen(s));
A.5 B.6 C.7 D.14
78.設有以下說明語句( )
struct stu
{ int num;
char xm[10];
float cj;
}s[20];
則數組a所占空間大小為( )字節
A.16 B.14 C .320 D .280
79.設有以下函數( )
f(int i)
{ int j=0;
static int s=1;
return (s++)+(++i)+(++j);
}
main( )
{int i;
for(i=0;i<2;i++)printf(“%d”,f(0));
}
A.23 B.35 C.34 D. 24
二、多選題
1.如下列變量均合法定義,則以下不合法的賦值表達式是( )
A. a=int(3.5) B. 3=a C. ++(a+b) D. a<<=3
2.下面標識不符合法的是( )
A. a8b B. 3ab C. if D. ok?
3.下列敘述不正確的是( )
A. C語言源程序可以直接在DOS環境中運行
B.Turbo C系統不提供編譯和連接C 程序的功能
C.編譯C語言源程序得到目標程序可以直接在DOS環境中運行
D.C語言源程序連接得到的可執行程序可以直接在DOS環境中運行
4.數學表達式 +2x-3y(x-y)的c語言表達式不正確的是( )。
A. (x+y)/(x-y)+2x-3y(x-y)
B. (x+y)/(x+y)+2x-3y(x-y)
C. (x-y)/(x-y)+2x-3y(x-y)
D. (x+y)/(x-y)+2x+3y*(x-y)
5.設有如下定義
int arr[]={1,2,3,4,5};
int *p=arr;
*(p+2)+=2;
printf(“%d,%d\n”,p,(p+2));
則輸出結果錯誤的是( )。
A. 1.4 B. 1.5 C. 1.6 D. 1.3
6.下列敘述正確的是( )
A. if語句允許用戶選擇是否執行某一個操作
B. if~else語句允許用戶選擇是否執行兩個操作中的某一個操作
C. switch語句允許用戶選擇執行多個操作的某一個操作
D. 多分支選擇結構只能使用switch語句實現
7.設有如下定義
struct sk
{int a;float b;}data,*p;
如有p=&data; 則對data中的a域的引用錯誤的是( )
A. (*p).a B. (*p).data.a C. p.data.a D. p->data.a
8.假定a為一數組名,則下面的哪一種表示是正確的( )
A. a[i] B. *a++ C. *a D. *(a+1)
9.如下列變量均合法定義,則以下不合法的賦值表達式是( )
A. a=int(3.5) B. 3=a C. ++(a+b) D. a<<=3
10.下列敘述正確的是( )
A.break語句可以使程序從switch語句中跳出來
B.continue 語句是為了結束本次循環,而不是終止整個循環的執行
C.break語句是為了使程序流程跳出循環體,提前結束循環
D.在switch語句中使用continue 和break語句的作用相同
11.下述對C語言字符數組的描述中正確的是( )
A. 字符數組可以存放字符串
B. 字符數組中的字符串可以整體輸入輸出
C. 可以在賦值語句中通過賦值運算符“=”對字符數組整體賦值
D. 不可以用關系運算符對字符數組中的字符串進行比較
12.以下程序段的輸出結果錯誤的是( )。
#include “string.h”
main()
{char *p,*q,s[80]=”ABCDEFGHIJK”;
p=”1234”;q=”5678”;
strcpy(s+2,p+2); strcpy(s+4,q+3);
printf(“%s”,s);
}
A. AB348 B. AB348 C. AB348 D. AB348
13.以下程序的輸出結果錯誤的是( )。
main()
{int a=0,i;
for(i=0;i<5;i++)
switch(i)
{case 0:
case 2:a+=3;
default:a+=5;
}
}
printf(“%d\n”,a);
}
A. 30 B. 33 C. 31 D. 32
14.c語言程序中的每條基本語句不以( )作為結束符。
A. 。 B. , C. ; D.}
15.在下列的數組定義中,哪幾個有語法正確( )。
A. int a[]={1,2,3,4,5}; B. int a[10]={0};
C. int a[][]={0,2,4,6,8}; D. int a[][5]={1,2,3,4,5,6,7};
16.表達式x=x+1表示成增量表達式錯誤的為( )。
A x+或++x B x++或+x C x++或++x D x+或+x
17.若有以下語句
main()
{char *s=”1234\”\067”;
printf(“%s”,s);
輸出結果錯誤的為( )。
A 123”66 B 123”67 C 113”67 D 133”67
18.若有以下程序段:
main()
{int a=511;
unsigned char p;
p=(unsigned char)&a;
printf(“%d”,*p);
}
輸出結果錯誤的為( )。
A 254 B 253 C 255 D 256
19.若a為int 型變量,則以下哪一個語句是不正確的( )。
A.int *p=a; B. int p =*a; C. int *p=&a; D. int p=&a;
20.下面的哪一個保留字能作為函數返回類型( )。
A. long B. auto C. float D. char
21.若有以下語句,使得a=’a’,d=9,c=’b’,則輸入格式不正確的是(u 空格,CR為換行符)( )。
int i;
char a,b;
scanf(“%c%d%c”,&a,&i,&b);
A. au9ub B. a9ub C. a9b D. a CR 9 CR b
22.假定a為一維數組,pa是指向數組a的指針變量,則訪問a[i]的不正確方式為( )。
A. *a+i B. *(pa+i) C. *pa+i D. pa+i
23.設x、y均為整型變量,且x=8,y=7,則以下語句的輸出結果錯誤的是( )。
printf(“%d,%d\n”,++x,y++);
A 9,6 B 9,7 C 8,7 D 9,5
24.以下程序的輸出結果錯誤的是( )。
main()
{int i, a[3][3]={0,1,2,3,4,5,6,7,8},*p=&a[0][2];
for(i=0;i<4;i+=2) printf(“%d”,p[i]);
}
A.23 B.34 C.24 D.35
25.若要對C盤上temp子目錄下名為my.bat的文本文件進行讀寫操作,則下面不符合此要求的打開文件的函數調用為( )。
A.fopen(“c:\temp\my.bat”,”rw”)
B.fopen(“c:\temp\my.bat”,”rw”)
C.fopen(“c:\temp\my.bat”,”r+”)
D.fopen(“c:\temp\my.bat”,”r+”)
26.邏輯表達式 x>10 &&x<20的相反表達式錯誤的為( )。
A. !(x>10 && x<20) 或 x<=10 || x>=20
B. !(x>10 && x<20) 或 x<=10 || x=20
C. !(x>10 && x<20) 或 x<=10 || x>20
D. !(x>10 && x<20) 或 x<10 || x>=20
27.若有定義:
int a=511,*b=&a;
則 printf(“%o”,*b);的輸出結果錯誤的為( )。
A. 776 B. 767 C. 777 D. 677
28.有如下程序:
main()
{int i,j;
for (i=1;i<=4;j++) j=j+i;
printf(“%d\n”,j);
}
該程序的的執行結果錯誤的是( )。
A.不確定 B.6 C.10 D.死循環
三、判斷題
1.f(int a[], int m, int n)
{int i,s=0;
for(i=m;i<n;i+=i+2)
s=s+a[i];
return (s);
}
main()
{int x,a[]={9,8,7,6,5,4,3,2,1};
x=f(a,3,5);
printf(“%d\n”,x);}
運算結果為5。
2.main()
{char ch[2][5]={“3773”,”6363”}, 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=10s+p[i][j]-‘0’;
printf(“%d\n”,s);}
運算結果為3766。
3.main()
{int a[5]={1,3,5,7,9},b[3]={2,4,6},*p,*q,i,j;
p=a;q=b;
printf(“\n”);
while(p<a+5 && q<b+3)
if(*p<q) printf(“%3d”,p++);
else printf(“%3d”,q++);
while(p<a+5) printf(“%3d”,p++);
while(q<b+3) printf(“%3d”,q++);
}
運算結果為1 2 3 4 5 6 7 8。
4.void main()
{char a[]=”abacdaabcabagfcad”;
int i1=0,i2=0,i=0;;
while(a[i])
{if(a[i]’a’) i1++;
if(a[i]’b’) i2++;
i++;}
printf(“i1=%d,i2=%d\n”,i1,i2);}
運算結果為 i1=7,i2=3。
5.main()
{int a[]={7,4,8,6,9,5,3,10,2,1};
int i,j,k;
for(j=3;j<=9;j++)
{k=a[j];
i=j-3;
while(i>=0 &&a[i]>k) {a[i+3]=a[i];i=i-3;}
a[i+3]=k;
}
for(i=0;i<=9;i++)
printf(“%d ”,a[i]);
}
運算結果為1 4 2 3 9 5 6 1 0 8 7。
6.float ave(a,n)
float a[];
int n;
{int i;
float s;
for(i=0,s=0;i<n;i++)
s=s+a[i];
return (s/n);
}
程序(段)或函數的功能為:求數組a中前n+1個數的平均。
7.SD(int a[], int n, int k)
{int b=0;
for(int i=0;i<n;i++)
if(a[i]k) b++;
return (b);}
程序(段)或函數的功能為:在數組前n個元素中,查找與k+1相等的元素個數.
8.# include “stdio.h”
main()
{FILE fp1, fp2;
if((fp1=fopen(“name1.dat”,”r”))==NULL)
{printf(“open error\n”); exit(0);}
if((fp2=fopen(“name2.dat”,”w”))==NULL)
{printf(“open error\n”); exit(0);}
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
程序(段)或函數的功能為:把name1.dat文件內容復制到name2.dat中。
9.double SA(double x,int n)
{int p=1,s=1,i;
for( i=1;i<=n;i++)
{p=x;
s+=1.0p/(i+1);}
return s;
}
程序(段)或函數的功能為:求1+x/2+x2/3+……+xn/(n+1)。
10.main()
{int i, s=0;
static c=0;
for(i=1;i<10;i++)
{c=c+i;
s=s+c;
}
printf(“%d”,s);
}
程序(段)或函數的功能為:求1+(1+2)+(1+2+3)+……+(1+2+……+9)的和。
11.int a=2,b=4;
max(int a,int b)
{int c;
c=a>b?a:b;
return ?;}
main()
{int a=6,c;
c=max(a,b);
printf(“max=%d”,c);
}
運算結果為:max=6。
12.main()
{int i=0;
while(i<3)
{i++;
printf(“%d”,i);
}
}
運算結果為:123。
13.void swap(int *i, int *j)
{int z;
z=*i; *i=*j; j=*i;
}
main()
{int a[6]={5,1,4,3,2,6},i,j;
for(i=0,j=5;i<j;i+=2,j–)
swap(a+i,a+j);
for(i=0;i<5;i++)
printf(“%5d”,a[i]);
}
運算結果為:6 1 2 3 2。
14.#include “string.h”
main()
{char p[5][10]={“chain”,”america”,”africa”,”moto”,”class”},
(*q)[10],s[80];
int i,j;
q=p;
for(i=0;i<5;i++)
for(j=0;j<4-i;j++)
if(strcmp(q[j],q[j+1])>0)
{strcpy(s,q[j]);
strcpy(q[j],q[j+1]);
strcpy(q[j+1],s);
}
for(i=0;i<5;i++)
printf(“\n %s”,p[i]);
}
運算結果為: africa。
america
chain
class
moto
15.void SA(char ch)
{switch(ch)
{case ‘A’:case ‘a’:printf(“well!”);break;
case ‘B’:case ‘b’:printf(“good!”);break;
case ‘C’:case ‘c’:printf(“pass!”);break;
default:
printf(“bad!”);
}
}
void main()
{char a[6]=”Abcaf”;
int i;
for( i=0;a[i];i++)
SA(a[i]);
}
運算結果為:well ! well ! pass! well! bad!。
16.#define N 20
void main()
{int a[N],i,m=0;
float s=0;
int b[N];
for(i=0;i<N;i++)
{scanf(“%d”,&a[i]);
s+=a[i]; }
s/=N;
for(i=0;i<N;i++)
if(a[i]>=s)
{ b[m]=a[i];
printf(“%d”,b[m++]);}
}
程序(段)或函數的功能為:輸入N個數,輸出低于平均數的所有數.
17.void SE(int *p1,int *p2)
{int t;
t=*p1;
*p1=*p2;
*p2=t;}
main()
{int a,b;
int *p1,p2;
scanf(“%d,%d”,&a,&b);
p1=&a; p2=&b;
if(a>b) SE(p1,p2);
printf(“%d,%d\n”,a,b);}
程序(段)或函數的功能為:a,b兩數由大到小排序。
18.long int p(int i)
{static lont int k=1;
k=ik;
return (k);
}
main()
{int n,i;
scanf(“%d”,&n);
for(i=1;i<=n;i++)
printf(“%d!=%ld\n”,i,p(i));
}
程序(段)或函數的功能為:輸出1-n階乘。
19.#define MAX(x,y) (x)>(y)? (x):(y)
main()
{int a,b,t;
scanf(“%d%d”,&a,&b);
t=MAX(a,b);
printf(“%d\n”,t);
}
程序(段)或函數的功能為:輸出兩數的最大值。
20.f(int n)
{if (n/100) printf(“%d”,n);
else { f(n/10);
printf(“%d”,n%10);
}
}
main()
{int n;
scanf(“%d”,&n);
f(n);
}
程序(段)或函數的功能為:輸入整數n,按位原序輸出。
21.void main()
{int s=0,i;
for( i=1; ; i++)
{if(s>50) break;
if(i%3==0) s+=i;
}
printf(“i=%d,s=%d\n”,i,s);
}
運算結果為i=19,s=63。
22.void main()
{int s1=0,s2=0,i;
for(i=0;i<10;i++)
if(i%2) s1=s1+i;
else s2=s2+i;
printf(“s1=%d,s2=%d\n”,s1,s2);}
運算結果為s1=35,s2=25。
23.f(int a)
{int b=0;
static c=5;
b=b+3;
c=2c;
return(a+b+c);
}
main()
{int a=2,i;
for(i=0;i<=2;i++)
printf(“%d”,f(a));
}
運算結果為152545。
24.main()
{int a,b,c;
a=9; b=5;
c=max(a,b);
printf(“max=%d”,c);
}
int max(int x, int y)
{int z;
if (x>y) z=x;
else z=y;
return (z);
}
運算結果為max=9。
25.main()
{int a[3][3]={1,1,1},i,j;
for(i=1;i<3;i++)
for(j=i;j<3;j++)
{a[i][j]=a[i-1][j]+a[i-1][j-1];
a[j][i]=a[j][i]-a[i][j];
}
for(i=1;i<3;i++){printf(“\n”);
for(j=1;j<3;j++)
printf(“%5d”,a[i][j]);
}
}
運算結果為 0 1
1 0
26.void ch(char str1[],char str2[],char str[])
{int i,j;
for(i=0;str1[i]!=’\0’;i++)
str[i]=str1[i];
for(j=0;str2[j]!=’\0’;j++)
str[i+j]=str2[j];
str[i+j]=’\0’;
}
main()
{char s1[80],s2[80],s[80];
scanf(“%s”,s1);
scanf(“%s”,s2);
ch(s1,s2,s);
printf(“The new string is %s\n”,s);
}
程序(段)或函數的功能為將字符串s1和s2合并復制到字符串s中。
27.#define PI 3.14159
#define S? PIRR
#define L? 2PIR
main()
{int r,s,l;
scanf(“%d”,&r);
s=S?;
l=L?;
printf(“s=%d\nl=%d\n”,s,l);
程序(段)或函數的功能為求半徑為r的圓的周長的半徑。
28.#include <math.h>
int SB(int x)
{int a=(int)sqrt(x);
int i=2;
while (i<=a){
if (x%i0) break;
i++;}
if(i<=a) return 0; else return 1;}
程序(段)或函數的功能為判斷x是否為素數。
29.main()
{int n;
for(n=1;n<=1000;n++)
{if (n%5!=0)
continue;
printf(“%d”,n);
}
}
程序(段)或函數的功能為求1-1000中所有5的倍數。
30.#include<string.h>
void main()
{char *a[5]={“student”,”worker”,”cadre”,”apple”,”peasent”};
char *p1;
int i;
p1=a[0];
for( i=0;i<5;i++)
if(strcmp(a[i],p1)>0) p1=a[i];
printf(“%s\n”,p1);}
程序(段)或函數的功能為求字符串數組a中最小的字符串。
31、main()
{union ss
{char s[2];
int i;
}a;
a.i=123;
a.s[0]=3; a.s[1]=2;
printf(“%d”,a.i);
}
運算結果為515。
32、void f(int x,int y, int *p1, int p2)
{p1=2x; p2=xy;}
main()
{int a,b,c,d;
a=9; b=7;
f(a,b,&c,&d);
printf(“%d,%d\n”,c,d);
}
運算結果為18,63。
33、main()
{int a=3;
while (–a)
printf(“%d”,a–);
}
運算結果為2。
34、void main()
{ int a=10,b=20;
printf(“%d %d\n”,a,b);
{int b;
a=4;
int b=a+35;
printf(“%d %d\n”,a,b);}
printf(“%d %d\n”,a,b);
}
運算結果為 10 20
40 75
40 20
35、main()
{int a[10]={7,4,8,6,9,5,3,10,2,1};
int i, max, min;
max=min=0;
for(i=0;i<10;i++)
if (a[max]<a[i]) max=i;
else if(a[min]>a[i]) min=i;
i=a[max]; a[max]=a[9]; a[9]=i;
i=a[min]; a[min]=a[0]; a[0]=i;
for(i=0;i<10;i++) printf(“%5d”,a[i]);
}
運算結果為10 4 8 6 9 5 3 1 2 6 。
36、float fac(int n)
{float f;
if(n<0)
printf(“error!”);
else
if(n0||n==1)f=1;
else f=fac(n-1)*n;
return f;
}
main()
{int n;
float y;
scanf(“%d”,&n);
y=fac(n);
printf(“%d!=%10.0f”,n,y);
}
程序(段)或函數的功能為:求n!.
37、#include “stdio.h”
main()
{FILE *fp1, *fp2;
if((fp1=fopen(“name1.dat”,”r”))==NULL)
{printf(“cannot open file\n”);exit(0);}
if((fp2=fopen(“name2.dat”,”w”))NULL)
{printf(“cannot open outfile\n”);exit(0);}
while(!feof(fp1))fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
程序(段)或函數的功能為:實現文件的剪切。
38、int f()
{static i=0;
i++;
return i;
}
main()
{int i,s=0;
for(i=0;i<5;i++)
s+=f();
printf(“%d\n”,s);
}
程序(段)或函數的功能為:求0到5的和。
39、int LA(int *a,int n)
{int s=0,i;
for (i=0;i<n;i++)
s+=a[i];
return s;}
void main(){
int a[]={10,20,30,40,50,60};
int b=LA(a,5);
printf(“b=%d\n”,b);}
程序(段)或函數的功能為:求數組a中前5個元素之和。
40、int f(int n)
{
int i;
for(i=2;i<=n;i++)
if(n%i0) return (0);
return 1;
}
程序(段)或函數的功能為:判斷一個數是否素數。
總結
以上是生活随笔為你收集整理的【渝粤题库】陕西师范大学200681C语言程序设计 作业(高起专、高起本)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科创板打新规则及方法?
- 下一篇: 软银正在洽谈收购受益AI概念上涨的VF1