C语言试题训练_第1页
C语言试题训练_第2页
C语言试题训练_第3页
C语言试题训练_第4页
C语言试题训练_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言试题训练

引导语:现如今,c语言的应用已经越来越广泛,学习的人也越

来越多,以下是我整理的C语言试题训练,欢迎参考阅读!

C语言试题训练篇1

一、单项选择题:(10分,每题2分)

1.设有以下定义:

inta[3][3]={1,2,3,4,5,6,7,8,9};

int(*ptr)[3]=a,*p=a[0];

则以下能够正确表示数组元素[2]的表达式是。

A)*((*ptr+1)[2])

B)*(*(p+5))

C)(*ptr+1)

D)*(*(a+1)+2)

2.有如下程序片段:

inti=0;

千里之行,始于足下。

while(i++=2);

printf(%d,i);

则正确的执行结果是:

A)2B)3

04D)无结果

3.合法的数组定义是。

A)inta[]=language;

B)inta[5]={0,1,2,3,4,5);

C)chara=string;

D)chara[]={0,1,2,3,4,5);

4.设有如下定义:

structst

{

inta;

floatb;

第2页/共27页

}stl,*pst;

若有pst=stl;则下面引用正确的是o

A)(*pst.stl.b)B)(*pst).b

C)pst-stl.bD)pst.stl.b

5.假如inti=3,则printf(%d,-i++)的输出结果是,i

的值是。

A)-34B)-44

C)-43D)-33

二、写出下列程序的运行结果。(10分,每题2分)

1.

#include

main()

(

intx,y;

scanf(%2d%*2s%ld,x,y);

printf(%d,x/y);

千里之行,始于足下。

程序运行时输入:2345678/

则程序运行结果是:

2.

#include

main()

(

inti=0;

while(i3)

{

switch(i++)

(

case0:

printf(fat);

break;

case1:

第4页/共27页

printf(hat);

case2:

printf(cat);

default:

printf(Ohno!);

}

put);

)

}

运行结果是:

3.

ttinclude

intSquare(inti);

main()

千里之行,始于足下。

inti=0;

i=Square(i);

for(;i5;i+=2)

(

staticinti=1;

i+=Square(i);

printf(%d,i);

)

printf(%d,i);

)

intSquare(inti)

!

returni*i;

}

程序运行结果是:

4.

第6页/共27页

ttinclude

voidinv(int*p,intn);

main()

(

inti;

inta[10]={13,7,9,11,0,6,7,5,4,2);

for(i=0;ilO;i++)

(

printf(%d,,a[i]);

}

printf();

inv(a,10);

for(i=0;110;i++)

printf(%d,,a[i]);

千里之行,始于足下。

voidinv(int*p,intn)

(

int*i,*j,m=(n-1)/2,t;

j=p+n-1;

for(i=p;i=p+m;i++,j-)

(

t二*i;*i=*j;*j=t;

}

}

程序运行结果:

5.

#include

structname

第8页/共27页

charfirst[20];

charlast[20];

);

structbeam

(

intlimbs;

structnametitle;

charty[30];

);

main()

{

structbeam*pb;

structbeamdeb={6,{Berbnazel,Gwolkapwolk},

Arcturan};

pb=deb;

千里之行,始于足下。

printf(%d,deb.limbs);

printf(%s,pb-ty);

printf(%s,pb-ty+2);

)

运行结果是:

三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,

使程序完整并符合题目要求。(8分,每空1分)

1.下面这个程序的功能是对含有n个元素(最多10个)的一维数

组按升序进行排序。

ttinclude

#defineARRAY_STZE10

voidSort(inta[],intn);

voidInputArray(inta[],intn);

voidPrintArray(inta[],intn);

main()

(

inta[ARRAY_SIZE],n;

第10页/共27页

printf(Inputarraylenthn=10:):

scanf(%d,n);

printf(输入数组a:);

InputArray(a,n);

Sort(a,n);

printf(打印排序后的数组a:);

PrintArray(a,n);

)

voidSort(inta[],intn)

(

inti,j,p,temp;

for(i=0;i;i++)

{

P=i;

for(j=;jn;j++)

千里之行,始于足下。

if()P=j;

)

if()

(

temp=a[p];

a[p]=a[i];

a[i]=temp;

}

}

}

voidInputArray(inta[],intn)

(

inti;

for(i=0;in;i++)

第12页/共27页

}

voidPrintArray(inta[],intn)

(

inti;

for(i=0;in;i++)

(

printf(%d,a[i]);

}

printf();

}

2.下面程序的功能是从键盘输入一行字符,统计其中有多少单

词。假设单词之间以空格分开。[提示:推断是否有新单词消失的方

法是-----当前被检验的字符不是空格,而前一被检验字符是空格,

则表示有新单词消失。]

ttinclude

千里之行,始于足下。

main()

(

charstr[80];

inti,num;

gets(str);

if(str[O]!=)

{

num=1;

}

else

(

num=0;

)

for(i=1;str[i];i++)

第14页/共27页

if(str[i]str[i-l])

num++;

}

printf(num=%d,num);

}

四、在下面给出的4个程序中,共有16处错误(包括语法错误

和规律错误),请找出其中的错误,并改正之。(30分,每找对1个

错误,加1分,每修改正确1个错误,再加1分。只要找对15个即

可,多找不加分。)

1.在给定的一组书名中,从键盘任意输入一个书名(书名可以

有空格)。若找到,则打印该书名,否则打印“没找到”。

#include

#include

main()

inti,findFlag=0;

千里之行,始于足下。

charx;

charstr[][13]={Pascal,Basic,Fortran,Java,

VisualC,VisualBasic);

printf(请输入一个字符串:);

gets(x);

while(i6!findFlag)

(

if(x==str[i])

{

findFlag=1;

}

i++;

}

if(findFlag)

第16页/共27页

printf(%s,x);

else

(

printf(没找到!);

}

}

2.打印100~200之间的全部素数。

#include

ttincludo

main()

(

intm,i;

for(m=100;in=200;m++)

for(i=2;isqrt(m)flag;i++)

千里之行,始于足下。

if(m%i==0)

flag=0;

!

if(flag)

(

printf(%d,m);

)

}

}

3.从键盘输入任意一个同学的学号,在班级同学表中(同学表的

学号是按升序排序的,且班级最多30人)查找该学号是否存在,存

在打印其考试成果,否则打印“Notfind!"o

#include

#defineARRJIZE30;

intSearch(long*p,intn,longx);

第18页/共27页

main()

longnum[ARRSIZE],x;

floatscore[ARRSIZE];

inti,n,pos;

printf(输入班级实际人数:);

scanf(%d,n);

printf(输入同学学号和成果);

for(i=0;in;i++)

{

scanf(%ld%f,num[i],score[i]);

)

printf(输入待查找学号:);

scanf(%d,x);

pos=Search(num,n,x);

if(pos+1)

千里之行,始于足下。

printf(score=%f,score[pos]);

else

printf(Notfind!);

!

intSearch(long*p,intn,longx);

(

inti,flag;

for(i=0;in;i++)

{

if(*(p+i)==x)

{

flag=i;

break;

}

else

第20页/共27页

flag=-1;

}

returnflag

}

4.该程序的作用是将一个字符串中的元音字母复制到另一个字

符串,然后输出。

ttinclude

main()

(

charstrl[80],str2[80];

printf(输入一个字符串:);

gets(strl);

Cpy(strl[],str2[]);

printf(输出一个字符串);

千里之行,始于足下。

puts(str2);

}

voidCpy(chars[],charc[])

(

inti,j;

for(i=0;s[i]!=;i++)

(

if(s[i]=a||s[i]=A||s[i]=e||s[i]=E||

s[i]=i||s[i]=l||s[i]=o||s[i]=0|

s[i]=u||s[i]=U)

(

s[i]=c[j];

j++;

}

}

第22页/共27页

五、编程(42分)

L编程计算:1!+3!+5!+…+(2n-l)!的值。其中,n值由键盘输

入。(14分)

2.不用标准库函数strlen,自己编写一个函数MyStrlen,实现

计算字符串长度的功能。要求在主函数中输入一个字符串(可以读入

空格),并在主函数中打印字符串的长度。(14分)

请按以下给定的函数原型编写程序:

intMyStrlen(charstr口);

intMyStrlen(char*p);

注:不按给定的函数原型或使用全局变量编写程序不给分“

3.编写一个函数,求最大值及最大值所在元素的下标。要求在主

函数中通过键盘任意输入一组数(最多10个),且在主函数中打印最

大数及最大数元素的下标。(14分)

请按以下给定的函数原型编写程序:

voidFindmax(intnum口,intn,int*pMaxNum,int*pMaxPcs);

voidFindmax(int*p,intn,int*pMaxNum,int*pMaxPcs);

千里之行,始于足下。

注:不按给定的函数原型或使用全局变量编写程序不给分。

C语言试题训练篇2

1、在C语言中,下列标识符中合法的是()A).-intB).inl_3

C).AB!DD).const

2、不属于C语言基本数据类型的是()

A).intB).unionC).charD).unsigned

3、下面是对宏定义的描述。不正确的是()

A).宏不存在类型问题,宏名无类型,它的参数也无类型B).宏

替换不占用运行时间

0.宏替换只是字符串的简洁替代

D).宏替换时先检查类型,类型全都时才可以替换

4、C语言中,"xfds〃在内存中占用的,字节数是()

A).3B).40.5D).6

5、设intx;则执行printf(〃%x〃广x'x);的结果是()

A).ffffffffB).ffC).0D).1

6^对于while()

第24页/共27页

A).用条件掌握循环体的执行次数B).循环体至少要执行一次

0.循环体有可能一次也不执行D).循环体中可以包含若干条语

7、执行下列语句后输出的结果是()

inta=8,b=7,c=6;

if(ac){a=c;c=b;})if(b

printf(%d,%d,%d,a,b,c);

A).6,7,7B).6,7,8C).8,7,6D).8,7,8

8^设inta=9,b=20;则printf("%d,%d",a--,--b);的输出

结果是()

A).9,19B).9,20C).10,19D).10,20

9^设staticchar

x[]=〃12345〃,y[]={'1,,‘2,,‘3','4','5'J'};那

么()

A).x数组的长度等于y数组的长度B).x数组的长度大于y数组

的长度

C).x数组的长度少于y数组的长度D).x数组与y数组的存储区

域相同

10、设inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输

千里之行,始于足下。

出结果是()

for(i=0;i3;i++)

printf("%d",x[i][2-i]);

A).147B).1590.357D).369

11、执行完下列语句后,n的值是()

intn;

for(n=0;nlOO;n=2*n+l);

A).125B).126C).127D).128

12>有以下语句:inta=6;a+=a-=a*a;printf("%d”,a);输出

结果()

A).-132B).-60C).-24D).0

13、为了连接两个字符串si与s2,应当使用()

A).strcat(si,s2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论