c语言练习题及答案

更新时间:2023-10-18 02:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1题 (2分)

运行以下程序时,输出结果是【1】 9 long fit(int n)

{if(n>2) return(fit(n-1)+fit(n-2)); else return(3);} main()

{printf(\}

第2题 (2分)

以下程序运行后的输出结果是【1】 abcbcc #include void main()

{ char ch[]=\ for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++)printf(\ printf(\}

第3题 (2分)

下列程序的输出结果是【1】 CDABC #include main( ) { char b[30]; strcpy(&b[0],\ strcpy(&b[1],\ strcpy(&b[2],\ printf(\}

第4题 (2分)

运行以下程序时,输出结果是【1】 6 8 #include int b;

int fun (int a) { static int c=2;

return((++a)+(++b)+(++c)); }

void main( ) { int i, a=1; for(i=0;i<2;i++) printf(\}

1

第5题 (2分)

在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】 auto 第6题 (2分) 有以下定义和语句: struct date { int day; int month; int year;

union { int share1; float share2; } share; }a;

则sizeof(a)的值是【1】 VC++环境下为16 , Turbo C环境下为10 第7题 (2分)

以下程序的运行结果是【1】 3 , 4, 5 int *swap(int *a,int *b) { int *p; p=a;a=b;b=p; return a;} main( ) {

int x=3,y=4,z=5; swap(swap(&x,&y),&z); printf(\}

第8题 (2分)

以下程序的运行结果是【1】 2, 1 交换的是指针p,q的指向 void swap(int **r,int **s) { int *t; t=*r; *r=*s; *s=t; } main( )

{ int a=1,b=2,*p,*q; p=&a; q=&b; swap(&p,&q);

printf(\

2

}

第9题 (4分)

以下程序运行时, 输出结果的第一行是【1】, 第二行是【2】. 3 2 #include void f (int *x, int y) { *x=y+1 ; y=*x+2 ; } main( )

{ int a=2, b=2 ; f(&a, b) ;

printf(\}

第10题 (4分) 设有以下main函数

main(int argc, char *argv[ ]) { while(argc > 1) { ++argv;

printf(\ - -argc; } }

经过编译、连接后得到可执行文件名为c1.exe,

若在系统的命令状态下输入命令行:c1 nanjing xiaozhuang college<回车>,

则在第一行输出【1】_________,第三行输出【2】_____________。nanjing college 第11题 (4分)

请填空以使程序完整。有一个m*n的矩阵,以下程序的功能是求出其中值最大的元素的值,以及相应的行号和列号。 #define M 4 #define N 3 main( ) {

int i,j,row=0,colum=0,max;

int a[M][N]={{1,23,3},{4,8,6},{17,6,1},{0,11,17}}; 【1】_________________; // max=a[0][0]; for(i=0;i<=3;i++) for(j=0;j<=2;j++)

if(【2】_________________) // max

max=a[i][j]; row=i; colum=j;

3

}

printf(\}

第12题 (4分)

以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字符串为:556,则输出十进制整数366.请填空。 #include main() { char s[6]; int n,i=0; gets(s);

n=【1】_____________ -'0'; //s[i]

while(【2】__________ !='\\0')n=n*8+s[i]-'0'; //s[++i] printf(\}

第13题 (6分)

该程序功能是:将有10个元素的整型数组a中下标值为偶数的元素从大到小排列,其他元素不变。请填空以使程序完整。 #define k 10 main( )

{ int a[k]={1,2,5,7,9,3,4,6,8,10},t; int i,j; for(i=0;i

for(i=0;i<=【1】____________;i=i+2) //i<=6 for(j=i+2;j

if(【2】________________) //a[i]

{t=a[i];【3】________________;a[j]=t;} //a[i]=a[j] for(i=0;i

第14题 (6分)

请填空以使程序完整。该程序的功能是把从键盘输入的十进制(long型)以16进制数的形式输出。

#include main( )

{ char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int c[64],d,i=0; long n;

printf(\

4

do

{ c[i]=【1】_____________; //n i++;

n=【2】______________; //n/16 }while(n!=0);

printf(\ for(--i;i>=0;--i) {

【3】________________; //d=c[i]; printf(\ } }

第15题 (6分) 阅读以下程序: main( )

{ char *str[3]={\ char **p; int i; p=str;

for(i=0;i<3;i++,p++)

printf(\ }

该程序第1行、第2行及最后一行的输出分别为【1】____ 、【2】____和【3】_____。u, m, d 第16题 (6分)

以下程序使用递归方法求数组中的最大值及其下标值,请填空: #define M 10

void findmax(int *a,int n,int i,int *pk) {if(i

{ if(a[i]>a[*pk]) 【1】____________; //*pk=i

findmax(a,n,i+1,【2】______________); //pk } } main( )

{ int a[M],i,n=0;

printf(\for(i=0;i

scanf(\【3】); //&a[i] findmax (a,M,0,&n);

printf(\printf(\

5

本文来源:https://www.bwwdw.com/article/98tf.html

Top