湖州师范学院C语言题库及答案_第1页
湖州师范学院C语言题库及答案_第2页
湖州师范学院C语言题库及答案_第3页
湖州师范学院C语言题库及答案_第4页
湖州师范学院C语言题库及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

2/2湖州师范学院C语言题库一、单项选择题(共20题,每小题2分,共40分)1、根据数制的基本概念,下列各进制的整数中,值最大的一个是______。 A、十六进制数10 B、十进制数10 C、八进制数10 D、二进制数102、以下不能定义为用户标识符的是________。 A、scanf B、Void C、_3com_ D、int3、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表达式________。 A、只能用逻辑表达式 B、只能用关系表达式 C、只能用逻辑表达式或关系表达式 D、可用任意表达式4、若有以下程序段,w和k都是整型变量:

w=k;

LB:if(w==0)

gotoLE;

w--;

printf("*")gotoLB;

LE;

则不能与上面程序段等价的循环语句是________。 A、for(w=k;w!—0;w--)printf(”*”); B、for(w=k;W;--w)printf(”*”); C、w=k;

while(w--!=O)printf(”*”); D、w=k:

W++;do

{

w--;printf(”*”);)while(w!=O);5、若定义a=3,b=4,执行printf("%d,%d",(a,b),(b,a));的输出结果为________。 A、3,4 B、4,3 C、3,3 D、4,46、下列数据中,不合法的c语言实型数据的是________。 A、0.123 B、123e3 C、2.1e3.5 D、789.07、有语句charstr1[10],str2[10]={"china"};

则能将字符串china赋给数组str1的正确语句是________。 A、str1={"china"}; B、strcpy(str1,str2); C、str1=str2; D、strcpy(str2,str1);8、下面关于形参与实参的说法,正确的是________。 A、形参与实参的个数、类型、顺序都应一一对应 B、形参与实参的个数可以不必相同,少一个多一个程序一样执行 C、形参与实参的类型可以不同,不影响运算结果 D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可9、下面正确的字符串常量是________。 A、'a' B、'376' C、"\n" D、37610、以下能对一维数组a进行初始化的语句是:() A、inta[5]=(0,1,2,3,4,) B、inta(5)={} C、inta[3]={0,1,2} D、inta{5}={10*1}11、有以下程序:

intf(intn)

{

if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{

inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);

}

程序运行后的输出结果是________。 A、4 B、3 C、2 D、112、按照数的进位制概念,下列各个数中正确的八进制数是______。 A、1101 B、7081 C、1109 D、B03A13、若intx,*p;则正确的赋值表达式是__。 A、p=&x B、p=x; C、*p=&x; D、*p=*x14、下面哪个不是关键字? A、int B、struct C、define D、continue15、下列程序的输出结果是()。

main()

{inta=7,b=5;

printf("%d\n",b=b/a);

} A、0 B、5 C、1 D、不确定值16、语句for(k=0;k<5;++k)

{

if(k==3)continue;

printf("%d",k);

}

的输出结果为______ A、012 B、0124 C、01234 D、没有输出结果17、下列关于共用体类型变量的描述中,正确的是________。 A、可以对共用体变量直接赋值 B、一个共用体变量可以同时存放其所有的成员 C、一个共用体变量中不可以同时存放其所有的成员 D、共用体类型定义中,不能出现结构体类型的成员18、有以下程序:

main()

{

intx,i;

for(i=l;i<=50;i++)

{

x=i;

if(x%2=0)if(x%3=0)if(x%7=0)printf("%d",i);

}

}

输出结果是________。 A、28 B、27 C、42 D、4119、对两个数组a和b进行如下初始化:chara[]="abcdef";charb[]={'a','b','c','d','e','f'}则以下叙述正确的是________。 A、数组a与数组b完全相同 B、数组a与数组b长度相同 C、数组a与数组b中都存放字符串 D、数组a比数组b长度长20、若有下面的说明和定义:

structtest

{

intm1;

charm2;

floatm3;

unionuu

{

charu1[5];

intu2[2];

}

ua;

}

myaa;

则sizeof(structtest)的值是________。 A、20 B、16 C、14 D、9二、填空题(共10题,每小题2分,共20分)1、设a=5,b=2,则表达式"!a+b"的值是_____________。2、在c语言中,假使x为单精度实型变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"__"。3、字母'a'的ascii码值为多少()4、八进制数37转换成二进制数是________。5、下面程序段中循环体的执行次数是________。

a=10;

b=0;

do

{

b+=2;

a-=2+b;

}

while(a>=0);6、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在内填入正确的内容。

#include<stdio.h>

voidmain()

{

charc;

c=getchar();

if(c>=’a’&&c<=’u’);

elseif(c>=’v’&&c<=’z’);

putchar(c);

}7、读取文件的函数名是【1】。8、C语言中,一个函数一般由两个部分组成,它们是______和函数体。9、写出下列程序的运行结果。

#include"stdio.h"

main()

{

inta[]={1,2,3,-4,5};

intm,n,*p;

p=&a[0];

m=*(p+1);

n=*(p+4);

printf("%d%d%d",*p,m,n);

}10、下面程序的运行结果是________。

#include<stdio.h>

main()

{

inty=2,a=1;

while(y--!=-1)

{

do

{

a*=y;

a++;

}

while(y--);

}

printf("%d,%d",a,y);

}三、编程题(共3题,共40分)1、请编写一个函数proc(),它的功能是:求出1~m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,则程序输出:7,11,14,21,22,28,33,35,42,44,49,55,56,63,66,70注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

#defineN100

voidproc(intm,int*a,int*n)

{

...

}

voidmain()

{

intarr[N],n,k;

system("cls");

proc(70,arr,&n);

for(k=0;k<N;K++)

if((k+1)%20==0)//每行输出20个数

{

printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}(本题10分)2、编写程序:用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

#include<stdio.h>

voidmain()

{

charc1,c2;

printf("请输入两个字符给c1和c2:\n");

_________________________________

_________________________________

printf("用putchar函数输出结果为:\n");

_________________________________

_________________________________

printf("\n用printf函数输出结果为:\n");

_________________________________

}(本题14分)3、输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。

输入格式:

输入第一行给出正整数n(<10)。随后n行,每行按照“姓名生日电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。

输出格式:

按照年龄从大到小输出朋友的信息,格式同输出。

输入样例:

3

zhang1985040313912345678

wang19821020+86/p>

qian1984061913609876543

输出样例:

wang19821020+86/p>

qian1984061913609876543

zhang1985040313912345678(本题16分)

参考答案一、单项选择题1、A【解析】分别将四个数转换为十进制为16,10,8,2。2、D3、D4、C5、B【解析】在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符d要求输出项内容以十进制整数形式输出,第一个输出项(a,b)是一个逗号表达式,该表达式的是b的值,输出4;第二个输出项(b,a)的值是a的值,输出3。6、C【解析】在C语言中,实数有两种表示形式。即十进制数形式和指数形式,在指数形式中,字母e的前面必须有数字,且e的后面必须是整数。e3,2.1e3.5,e3,e等都是不合法的指数形式,而123e3或123E3都代表123乘以10的3次方。7、B8、A【解析】形参、实参个数类型、数量、顺序应相同,因为类型转换都是有条件的,如果浮点型变量向指针型变量转换就是不可的。9、C10、C11、B【解析】第一次调用f()函数,返回值为1,第二次调用f()函数,牵涉到函数的递归调用,返回值为2。12、A【解析】八进制的数字为0~7。13、A14、C15、A16、B17、C18、C19、D【解析】考查字符数组的定义和初始化。[解题要点]数组a中最后一个元素是字符串结束标识'\0',所以a数组长度为7,而b数组长度为6,所以答案为D)。[考点链接]通过赋初值的方式给一维字符数组赋字符串。20、A【解析】共用体uu占8个字节;因为结构体在内存中占位符的存在,所以结构体test中成员m2占4个字节;结构体test占用内存的大小是sizeof(int)+sizeof(char)+3+sizeof(float)+sizeof(ua)=20。二、填空题1、22、%f3、654、111115、3次6、c=c+5|c=c-21【解析】根据ASCII码规律,要使字母循环后移5位输出,从a-u均不存在问题,但字母v(ASCII码值为118)后移5位,则ASCII值为123,不是循环到a(ASCII值为97),从而须执行c=c-21。7、fread8、函数首部9、12510、1,-2三、编程题1、voidproc(intm,int*a,int*n)

{

inti,j=0;

for(i=1;i<=m;i++)//进行m次循环if(i%7==0||i%11==0)//能被7或11整除的所有整数a[j++]=i;

//符合条件的数放在数组a中*n=j;

//返回这些数的个数

}2、c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

printf("%c,%c\n",c1,

温馨提示

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

评论

0/150

提交评论