C语言试题训练.docx

上传人:b****5 文档编号:11639594 上传时间:2023-03-29 格式:DOCX 页数:8 大小:17.36KB
下载 相关 举报
C语言试题训练.docx_第1页
第1页 / 共8页
C语言试题训练.docx_第2页
第2页 / 共8页
C语言试题训练.docx_第3页
第3页 / 共8页
C语言试题训练.docx_第4页
第4页 / 共8页
C语言试题训练.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C语言试题训练.docx

《C语言试题训练.docx》由会员分享,可在线阅读,更多相关《C语言试题训练.docx(8页珍藏版)》请在冰豆网上搜索。

C语言试题训练.docx

C语言试题训练

C语言试题训练

引导语:

现如今,C语言的应用已经越来越广泛,学习的人也越来越多,以下是小编整理的C语言试题训练,欢迎参考阅读!

一、单项选择题:

(10分,每题2分)

1.设有以下定义:

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

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

则以下能够正确表示数组元素a[1][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

C)4D)无结果

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;

}st1,*pst;

若有pst=st1;则下面引用正确的是________。

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

C)pst-st1.bD)pst.st1.b

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

A)-34B)-44

C)-43D)-33

二、写出下列程序的运行结果。

(10分,每题2分)

1.

#include

main()

{

intx,y;

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

printf(%d,x/y);

}

程序运行时输入:

2345678↙

则程序运行结果是:

2.

#include

main()

{

inti=0;

while(i3)

{

switch(i++)

{

case0:

printf(fat);

break;

case1:

printf(hat);

case2:

printf(cat);

default:

printf(Ohno!

);

}

put);

}

}

运行结果是:

3.

#include

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.

#include

voidinv(int*p,intn);

main()

{

inti;

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

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

{

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

}

printf();

inv(a,10);

for(i=0;i10;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

{

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个)的一维数组按升序进行排序。

#include

#defineARRAY_SIZE10

voidSort(inta[],intn);

voidInputArray(inta[],intn);

voidPrintArray(inta[],intn);

main()

{

inta[ARRAY_SIZE],n;

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++)

{

;

}

}

voidPrintArray(inta[],intn)

{

inti;

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

{

printf(%d,a[i]);

}

printf();

}

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

假设单词之间以空格分开。

[提示:

判断是否有新单词出现的方法是------当前被检验的字符不是空格,而前一被检验字符是空格,则表示有新单词出现。

]

#include

main()

{

charstr[80];

inti,num;

gets(str);

if(str[0]!

=)

{

num=1;

}

else

{

num=0;

}

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

{

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

{

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)

{

printf(%s,x);

}

else

{

printf(没找到!

);

}

}

2.打印100~200之间的所有素数。

#include

#include

main()

{

intm,i;

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

{

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

{

if(m%i==0)

flag=0;

}

if(flag)

{

printf(%d,m);

}

}

}

3.从键盘输入任意一个学生的学号,在班级学生表中(学生表的学号是按升序排序的,且班级最多30人)查找该学号是否存在,存在打印其考试成绩,否则打印“Notfind!

”。

#include

#defineARR_SIZE30;

intSearch(long*p,intn,longx);

main()

{

longnum[ARR_SIZE],x;

floatscore[ARR_SIZE];

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

{

flag=-1;

}

}

returnflag

}

4.该程序的作用是将一个字符串中的元音字母复制到另一个字符串,然后输出。

#include

main()

{

charstr1[80],str2[80];

printf(输入一个字符串:

);

gets(str1);

Cpy(str1[],str2[]);

printf(输出一个字符串);

puts(str2);

}

voidCpy(chars[],charc[])

{

inti,j;

for(i=0;s[i]!

=\0;i++)

{

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

s[i]=i||s[i]=I||s[i]=o||s[i]=O||

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

{

s[i]=c[j];

j++;

}

}

}

五、编程(42分)

1.编程计算:

1!

+3!

+5!

+…+(2n-1)!

的值。

其中,n值由键盘输入。

(14分)

2.不用标准库函数strlen,自己编写一个函数MyStrlen,实现计算字符串长度的功能。

要求在主函数中输入一个字符串(可以读入空格),并在主函数中打印字符串的长度。

(14分)

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

intMyStrlen(charstr[]);

intMyStrlen(char*p);

注:

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

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

要求在主函数中通过键盘任意输入一组数(最多10个),且在主函数中打印最大数及最大数元素的下标。

(14分)

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

voidFindmax(intnum[],intn,int*pMaxNum,int*pMaxPos);

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

注:

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

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

当前位置:首页 > 工作范文 > 行政公文

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

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