C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx

上传人:b****5 文档编号:16534682 上传时间:2022-11-24 格式:DOCX 页数:39 大小:30.57KB
下载 相关 举报
C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx_第1页
第1页 / 共39页
C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx_第2页
第2页 / 共39页
C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx_第3页
第3页 / 共39页
C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx_第4页
第4页 / 共39页
C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx

《C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。

C语言习题1滁州学院 计算机科学与技术专升本Word文档下载推荐.docx

A)7B)8C)9D)10

16在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。

A)由用户自己定义B)均为2个字节

C)是任意的D)有所用的机器的机器字长决定

17设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为(C)。

A)intB)floatC)doubleD)不确定

18设intn=3;

则++n的结果是(C),n的结果是(C)

A)2B)3C)4D)5

19语句(1,2,3,4)的结果是(D)。

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

20有如下程序,若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是(D).

main()

{

inta1,a2;

charc1,c2;

scanf("

%d%d"

&

a1,&

a2);

%c%c"

c1,&

c2):

}

A)1020AB<

CR>

B)1020<

AB<

C)1020ABC<

D)1020AB<

21已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据是,正确的数据输入方式是(A)。

(注:

︼表示空格,<

表示回车)

scanf(“%d%c%d%c”,&

a2,&

c2);

A)10A︼20B<

B)10︼A︼20︼B<

C)10A20B<

D)10A20︼B<

 

22阅读以下程序,当输入数据的形式为:

25,13,10<

,正确的输出结果为(D)。

{intx,y,z;

scanf(“%d%d%d”,&

x,&

y,&

z);

printf(“x+y+z=%d\n”,x+y+z);

A)x+y+z=48

B)x+y+z=35

C)x+z=35

D)不确定值

23设X,Y均为float变量,则以下不合法的赋值语句是(B)

A)++x;

B)y=(x%2)/10;

C)x*=y+8;

D)x=y=10;

24以下程序的执行结果是(A)。

#include<

stdio.h>

intsum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

printf("

%d\n"

pad);

A)7B)6C)5D)4

25有以下定义:

int 

a;

long 

b;

double 

x,y;

则以下选项中正确的表达式是(B)

A)a%(int)(x-y)  B)a=x!

=y;

  C)(a*y)%b  D)y=x+y=x  

26以下选项中能表示合法常量的是(D)  

A)整数:

1,200  

B)实数:

1.5E2.0  

C)字符斜杠:

‘\’ 

D)字符串:

"

\007"

27表达式a+=a-=a=9的值是(D) 

 A)9  B)-9  C)18  D)0  

28有以下程序(B)  

#include<

  

main()  

{inta=1,b=2;

while(a<

6){b+=a;

a+=2;

b%=10;

} 

 printf(”%d,%d\n”,a,b);

 }  

程序运行后的输出结果是  A)5,11  B)7,1  C)7,11  D)6,1  

29有以下程序(B)  

#include<stdio.h>

{inty=10;

  while(y--);

  printf(”y=%d\n”,y);

  } 

 程序执行后的输出结果是  A)y=0  B)y=-1  C)y=1  D)while构成无限循环  

30有以下程序(C)  

#include<stdio.h>

{chars[」=”rstuv"

  printf(”%c\n”,*s+2);

 程序运行后的输出结果是  A)tuv  B)字符t的ASCII码值  C)t  D)出错

31有以下程序(B)  

#include<stdio.h>

#include<string.h>

{charx[]=”STRING”;

 

 x[0」=0;

x[1]=’\0’;

x[2」=’0’;

 printf(”%d 

%d\n”,sizeof(x),strlen(x));

  }  

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

1  B)7 

0  C)6 

3  D)7 

1  

32有以下程序(D)  

f(int 

x);

 main()  

{int 

n=1,m;

 m=f(f(f(n)));

printf(”%d\n”,m);

x)  {return 

x*2;

}  

程序运行后的输出结果是  A)1  B)2  C)4  D)8  

33以下程序段完全正确的是(C)  

A)int*p;

scanf("

%d"

&p);

B)int*p;

scanf(“%d”,p);

C)intk,*p=&

k;

p);

D)intk,*p:

;

*p=&

34下列定义数组的语句中,正确的是(B) 

 A)int 

N=10;

intx[N];

B)#defineN10  int 

x[N];

C)int 

x[0..10];

D)intx[];

 35若要定义一个具有5个元素的整型数组,以下错误的定义语句是(D) 

a[5]=﹛0﹜;

 B)int 

b[]={0,0,0,0,0};

c[2+3];

D)int 

i=5,d[i];

    

36有以下程序  

void 

f(int*p);

a[5]={1,2,3,4,5},*r=a;

f(r);

printf(”%d\n”;

*r);

voidf(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>

 voidfun(int*a;

intn)  

{inti、j、k、t;

  for(i=0;

i<n-1;

i+=2)  

{k=i;

  for(j=i;

j<

n;

j+=2)if(a[j]>

a〔k])k=j;

  t=a〔i];

a〔i]=a[k];

a〔k]=t;

  }

{intaa「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    38下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST"

要求的是(A) 

A)if(strcmp(s2,s1)==0)ST;

B)if(sl==s2)ST;

C)if(strcpy(sl,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<string.h>

{chara[20]=”ABCD\0EFG\0”,b[]=”IJK”;

strcat(a,b);

printf(”%s\n”,a);

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

A)ABCDE\OFG\OIJK  B)ABCDIJK  C)IJK  D)EFGIJK

41有以下程序 

 #include<stdio.h>

fun(intx) 

 {if(x/2>1)fun(x/2);

 printf(”%d”,x);

{fun(7);

printf(”\n”);

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

A)137  B)731  C)73  D)37  

42有以下程序  

#include<stdio.h> 

 intfun()  

{staticintx=1;

  x+=1;

returnx;

{inti;

s=1;

for(i=1;

=5;

i++)s+=fun();

printf(”%d\n”,s);

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

 A)11  B)21  C)6  D)120

43有以下程序 

 #inctude<stdio.h>  

#include<stdlib.h>  

{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有以下程序  

{ints,t,A=10;

doubleB=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若有以下语句  

typedefstructS  {intg;

charh;

}T;

 以下叙述中正确的是(B)  

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

二、写出下列每个程序运行后的输出结果

1.#include<

voidmain(){

inti,s=0;

for(i=1;

i++){

if(s>

50)break;

if(i%2==0)s+=i;

}

printf("

i,s=%d,%d\n"

i,s);

2.#include<

charch='

*'

inti,n=5;

while

(1){

for(i=0;

n;

i++)printf("

%c"

ch);

\n"

if(--n==0)break;

3.#include<

voidmain()

{

intx=24,y=88;

inti=2,p=1;

do{

while(x%i==0&

&

y%i==0){

p*=i;

x/=i;

y/=i;

i++;

}while(x>

=i&

y>

=i);

p*x*y);

4.#include<

inta[9]={36,25,48,24,55,40,18,66,20};

inti,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]<

b1){b2=b1;

b1=a[i];

elseif(a[i]<

b2)b2=a[i];

%d%d\n"

b1,b2);

5.#include<

inta=10,b=20;

a,b);

{intb=a+25;

a*=4;

6.#include<

voidSelectSort(inta[],intn)

inti,j,k,x;

i++){//进行n-1次选择和交换

k=i-1;

for(j=i;

j++)

if(a[j]<

a[k])k=j;

x=a[i-1];

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

a[k]=x;

inti;

inta[6]={20,15,32,47,36,28};

SelectSort(a,6);

6;

i++)printf("

%d"

a[i]);

7.#include<

voidLE(int*a,int*b){

intx=*a;

*a=*b;

*b=x;

intx=15,y=26;

x,y);

LE(&

y);

8.#include<

#include<

string.h>

structWorker{

charname[15];

//姓名

intage;

//年龄

floatpay;

//工资

};

intEqual(structWorker*r1,structWorker*r2)

if(strcmp(r1->

name,r2->

name)==0)return1;

elsereturn0;

structWorkera[4]={{"

abc"

25,420},{"

defa"

58,638},

{"

ghin"

49,560},{"

jklt"

36,375}};

structWorkerx={"

};

4;

i++)

if(Equal(a+i,&

x))break;

if(i>

=4)printf("

没有查找所需要的记录!

elseprintf("

%s%d%6.2f\n"

a[i].name,a[i].age,a[i].pay);

9.

#include<

voidmain()

inta=0,b=2,c=3;

switch(a)

{case0:

switch(b==2)

{case1:

putchar('

'

break;

case2:

%'

case1:

switch(c)

$'

default:

#'

}

10.

#include<

intm=1,n=2,t=3;

++m;

t+=++n;

{intn=10,t;

t=n*2;

m+=t;

%d,%d,%d\n"

m,n,t);

答案:

1.

i,s=15,56

2.

*****

****

***

**

*

3.

264

4.

1820

5.

1020

4035

4020

6.

152028323647

7.

1526

2615

8.

defa58638.00

9.&

#

10.221020

2236

三、写出下列每个函数的功能

1.intSE(intn){//n为大于等于1的整数

intx,s=0;

输入%d个整数:

"

n);

x);

if(n==1)returnx;

s=x;

while(--n){scanf("

s+=x;

returns;

voidWA(inta[],intn){

inti,k,j,x;

n-1;

k=i;

for(j=i+1;

if(a[j]>

x=a[i];

a[i]=a[k];

int*LJ(inta[],intn){

inti,k=0;

i++)

if(a[i]>

a[k])k=i;

return&

a[k];

4.intOutput(structIntNode*f)

intsum=0;

if(!

f)return-9999;

//用返回特定值-9999表示空表

while(f){

sum+=f->

data;

f=f->

next;

returnsum;

假定structIntNode的类型定义为:

structIntNode{

intdata;

//结点值域

structIntNode*next;

//结点指针域

1.求出从键盘上输入的n个整数之和并返回。

2.采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。

3.求出数组a中n个元素的最大值元素,返回该元素的地址

4.对于以表头指针为f的链表,求出并返回所有结点中data域的值之和。

四程序填空

1.下面程序的功能是:

将一个数插入到一个有序数组(从小到大)中,使插入以后的数组仍然有序。

采用的算法是:

确定要插入数的位置,然后将比这个数大的数后移一个位置,在空出的位置上将该数插入。

inta[11]={1,3,6,7,9,12,14,18,19,20},x;

inti,p;

Inputadata:

for(i=0,p=10;

10;

i++)

if(x<

a[i])

①;

break;

for(i=9;

②;

i--)

a[i+1]=a[i];

③;

Thearray:

11;

%4d"

2.以下程序能统计一个英文句子(以.号结束)中最长单词的长度。

intcount(char*p)

intword=0,max=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1