C语言程序设计练习题1及答案 下载本文

D)int i=5,d[i]; 36有以下程序

#include<stdio.h> void f(int *p); main()

{int a[5]={1,2,3,4,5},*r=a; f(r);printf(”%d\\n”;*r); } void f(int *p)

{p=p+3;printf(”%d,”,*p);} 程序运行后的输出结果是(D)

A)1,4 B)4,4 C)3,1 D)4,1

37有以下程序(函数fun只对下标为偶数的元素进行操作 # include<stdio.h> void fun(int*a;int n)

{int i、j、k、t; for (i=0;i<n-1;i+=2) { k=i;

for(j=i;ja〔k])k=j; t=a〔i];a〔i]=a[k];a〔k]=t; } } main()

{int aa「10」={1,2,3,4,5,6,7},i; fun(aa,7);

for(i=0;i<7; i++)printf(”%d,”,aa[i])); printf(”\n”); }

程序运行后的输出结果是(A)

A)7,2,5,4,3,6,1 B)1,6,3,4,5,2,7 C)7,6,5,4,3,2,1 D)1,7,3,5,6;2,1下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST\要求的是(A) A)if(strcmp(s2,s1)==0)ST; B)if(sl==s2)ST;

C)if(strcpy(s l ,s2)==1)ST; D)if(sl-s2==0)ST;

39以下不能将s所指字符串正确复制到t所指存储空间的是(C) A)while(*t=*s){t++;s++;} B)for(i=0;t[i]=s[i];i++);

C)do{*t++=*s++;}while(*s); D)for(i=0,j=0;t[i++]=s[j++];);

40有以下程序( strcat函数用以连接两个字符串) #include<stdio.h> #include<string .h> main()

{char a[20]=”ABCD\0EFG\0”,b[]=”IJK”; strcat(a,b); printf(”%s\\n”,a); }

38 程序运行后的输出结果是(B)

A)ABCDE\\OFG\\OIJK B)ABCDIJK C)IJK D)EFGIJK 41有以下程序

#include<stdio.h> void fun(int x)

{if(x/2>1)fun(x/2); printf(”%d”,x); } main() {fun(7);printf(”\\n”);} 程序运行后的输出结果是(D)

A)1 3 7 B)7 3 1 C)7 3 D)3 7 42有以下程序

#include<stdio.h> int fun()

{static int x=1; x+=1;return x; } main()

{int i;s=1;

for(i=1;i<=5;i++)s+=fun(); printf(”%d\n”,s); } 程序运行后的输出结果是(B)

A)11 B)21 C)6 D)120 43有以下程序

#inctude<stdio.h> #include<stdlib.h> main()

{int *a,*b,*c;

a=b=c=(int*)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b;

printf(“%d,%d,%d\n”, *a,*b,*c); } 程序运行后的输出结果是 (A)

A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3 44有以下程序

#include<stdio.h> main()

{int s,t,A=10;double B=6; s=sizeof(A); t=sizeof(B);

printf(“%d,%d\n”,s,t); }

在VC6平台上编译运行,程序运行后的输出结果是(C) A)2,4 B)4,4 C)4,8 D)10,6 45若有以下语句

typedef struct S {int g; char h;}T; 以下叙述中正确的是(B)

A)可用S定义结构体变量 B)可用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量

二、写出下列每个程序运行后的输出结果 1. #include void main() { int i, s=0;

for(i=1;;i++) {

if(s>50) break; if(i%2==0) s+=i; }

printf(\ }

2. #include void main() { char ch='*'; int i, n=5; while(1) {

for(i=0;i

if(--n==0) break; } }

3. #include void main() {

int x=24,y=88; int i=2,p=1; do {

while(x%i==0 && y%i==0) { p*=i; x/=i; y/=i; } i++;

}while(x>=i && y>=i); printf(\ }

4. #include void main() {

int a[9]={36,25,48,24,55,40,18,66,20}; int i, b1, b2;

a[0]<=a[1]? (b1=a[0], b2=a[1]):(b1=a[1],b2=a[0]);

for(i=2; i<9; i++)

if(a[i]

5. #include void main() {

int a=10, b=20;

printf(\ { int b=a+25; a*=4;

printf(\ }

printf(\ }

6. #include

void SelectSort(int a[], int n) {

int i,j,k,x;

for(i=1;i

for(j=i;j

if(a[j]

x=a[i-1]; a[i-1]=a[k]; a[k]=x; } }

void main() {

int i;

int a[6]={20,15,32,47,36,28}; SelectSort(a,6);

for(i=0; i<6; i++) printf(\ printf(\ }

7. #include

void LE(int* a, int* b) { int x=*a; *a=*b; *b=x; }

void main() {

int x=15, y=26;