中国戏曲学院C语言程序设计及答案_第1页
中国戏曲学院C语言程序设计及答案_第2页
中国戏曲学院C语言程序设计及答案_第3页
中国戏曲学院C语言程序设计及答案_第4页
中国戏曲学院C语言程序设计及答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

2/2中国戏曲学院C语言程序设计一、单项选择题(共20题,每小题2分,共40分)1、已知有变量定义:inta;charc;用scanf("%d%c",&a,&c);语句给a和c输入数据,使30存入a,字符‘b’存入c,则正确的输入是:。 A、30’b’<回车> B、30b<回车> C、30<回车>b<回车> D、30b<回车2、若有说明:int*p,m=5,n;以下正确的程序段是________。 A、p=&n;scanf("%d",&p); B、p=&n;scanf("%d",*p) C、scanf("%d",&p;*p=6); D、p=&n;*p=m;3、下列合法的声明语句是________。 A、int_abc=50; B、doubleint=3+5c2.5: C、longdo=11; D、float3_asd=3e-3;4、以下程序的输出结果是

main()

{

inta=0,i;

for(i=;i<5;i++)

{

switch(i)

{

case0:case3:a+=2;

case1:case2:a+=3;

default:a+=5;

}

}

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

} A、31 B、13 C、10 D、205、语句for(k=0;k<5;++k)

{

if(k==3)continue;

printf("%d",k);

}

的输出结果为______ A、012 B、0124 C、01234 D、没有输出结果6、若有定义:char*p1,*p2,*p3,*p4,ch;则不能正确赋值的程序语句为________。 A、p1=&ch;scanf("%c",p1); B、p2=(char*)malloc(1);scanf("%c",p2); C、*p3=getchar(); D、p4=&ch;*p4=getchar();7、若有定义语句:inta[4][10],*p,*q[4];且0<=i<4,则错误的赋值是________。 A、p=a B、q[i]=a[i] C、p=a[i] D、p=&a[2][1]8、若有说明:staticinta[3][4];

则数组中各元素________。 A、可在程序的运行阶段得到初值0 B、可在程序的编译阶段得到初值0 C、不能得到确定的初值 D、可在程序的编译或运行阶段得到初值09、C语言程序是由____组成 A、一个主程序和若干子程序 B、函数 C、若干过程 D、若干子程序10、下列对字符串的定义中,错误的是________。 A、charstr[7]="FORTRAN"; B、charstr[]="FORTRAN"; C、char*str="FORTRAN"; D、charstr[]={'F','O','R','T','R','A','N',0};11、在数制的转换中,正确的叙述是______。 A、对于相同的十进制整数(>1),其转换结果的位数的变化趋势随着基数E的增大而减少 B、对于相同的十进制整数(<1),其转换结果的位数的变化趋势随着基数E的增大而增加 C、不同数制的数字符是各不相同的,没有一个数字符是一样的 D、对于同一个整数值的二进制数表示的位数一定大于十进制数字的位数12、下列说法不正确的是________。 A、调用函数时,实参可以是表达式 B、调用函数时,实参与形参可以共用内存单元 C、调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等 D、调用函数时,实参与形参的类型必须一致13、在16位编译器环境下,double类型占多少字节? A、2 B、4 C、1 D、814、以下叙述中不正确的是________。 A、空字符串(即两个双引号连写)只占一个存储单元 B、字符型常量可以放在字符型变量中 C、字符型常量可以放在字符串变量中 D、字符型常量可以与整数混合运算,而字符串常量不可以15、以下程序的输出结果是________。charstr[15]="hello!";printf("%d\n",strlen(str)); A、15 B、14 C、7 D、616、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是________。 A、while((ch=getchar())!='N')printf(”%c”,ch); B、while(ch=getchar()!='N')printf(”%c”,ch); C、while(ch=getchar()=='N')printf(”%c”,ch); D、while((chgetchar())=='N')printf(”%c”,ch);17、设有下面的定义:

structst

{

inta;

floatb;

}d;

int*p;

要使p指向结构变量d中的a成员,正确的赋值语句是________。 A、*p=d.a; B、p=&a; C、p=d.a; D、p=&d.a;18、有以下程序

#include<stdio.h>

main()

{

inta=5,b=1,t;

t=(a<<2)|b;

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

}

程序运行后输出的结果是________。 A、21 B、11 C、6 D、119、设有如下定义:charaa[2][20]={"abcd","abcd"};则以下说法中错误的是__________. A、aa是个二维数组,可以存放2个19个字符以下的字符串 B、aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD" C、aa[0]可以看作是一维数组名 D、aa[0][0]可以看作是一维数组名20、定义共用体的关键字是________。 A、union B、enum C、struct D、typedef二、判断题(共10题,每小题2分,共20分)()1、常量是在整个程序运行过程中不能改变的量()2、函数的形参可以是常量,变量或表达式()3、在if语句中,必须出现else。()4、continue语句只能出现在循环体语句中,不能用在其他的地方。()5、用strcat(字符串1,字符串2)连接两个字符串函数时,字符串1的存储空间没有限制。()6、对于一个具体的函数来说,实参与形参必须一一对应。()7、指向数组元素的指针只可指向数组的首元素()8、c语言中函数返回值的类型是由形参的数据类型决定的。()9、一个数组是由连续的一块内存单元组成的,指针变量就是这块连续内存单元的首地址()10、以“r”方式打开一个文件时,文件指针指向文件首。三、填空题(共5题,每小题4分,共20分)1、在c语言中,用转义字符\"表示______________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行2、已有定义:charc=’‘;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为________。3、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在内填入正确的内容。

#include<stdio.h>

voidmain()

{

charc;

c=getchar();

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

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

putchar(c);

}4、语言的函数体一般由____和____构成5、在printf格式字符中,只能输出一个字符的格式字符是________;

用于输出字符串的格式字符是________;

以小数形式输出实数的格式字符是________;

以标准指数形式输出实数的格式字符是______。四、程序分析题(共4题,每小题5分,共20分)1、以下程序运行的结果为____________。

#include<stdio.h>

intd=1;

fun(intp)

{

intd=5;

d+=p++;

printf("%d,",d);

}

voidmain()

{

inta=3;

fun(a);

d+=a++;

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

}2、下列程序运行时,若输入1abcedf2df<回车>输出结果为________。

#include<stdio.h>

main()

{

chara=0,ch;

while((ch=getchar())!=‘\n’)

{

if(a%2!=0&&(ch>=‘a’&&ch<=‘z’))ch=ch-‘a’+‘a’;

a++;

putchar(ch);

}

printf("\n");

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

main()

{

inti,f[10];

f[0]=f[1]=1;

for(i=2;i<10;i++)f[i]=f[i-2]+f[i-1];

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

{

if(i%4==0)printf("\n");

printf("%3d",f[i]);

}

}4、下面程序的功能是用―辗转相除法‖求两个正整数的最大公约数。请分析程序填空。

#include<stdio.h>

main()

{

intr,m,n;

scanf("%d%d",&m,&n);

if(m<n)____1___;

r=m%n;

while(r)

{

m=n;

n=r;

r=____2___;

}

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

}五、编程题(共3题,共50分)1、编写程序:输入一个百分制成绩,打印出五级记分成绩。考试成绩在90分或90分以上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分为不及格。(本题12分)2、编写程序:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。(本题18分)3、编写程序:编程实现输入5个学生的学号、计算他们的期中和期末成绩,然后计算其平均成绩,并输出成绩表(本题20分)

参考答案一、单项选择题1、D2、D【解析】“&”是求址运算符,“*”是指针变量说明符。选项A),B)应改为scanf("%d",p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,这样做很危险,建议不使用。3、A4、A5、B6、C7、A8、B9、B10、A11、A【解析】根据数值之间的相互转化可知,二进制的位数是最多的,由八位数组成,故对于相同的十进制整数(>1),其转换结果的位数的变化趋势随着基数E的增大而减少。12、B13、D【解析】在16位编译器环境下,double类型占8个字节。14、C15、D16、A17、D【解析】本题主要考查按结构数组元素方式引用结构成员。结构体变量的成员引用方法有3种:①结构体变量名,成员名;②指针变量名->成员名;③(*指针变量名).成员名。因为p是指针变量,所以应该将地址值赋给p。18、A19、D20、A二、判断题1、正确2、错误3、错误4、正确5、错误6、正确7、错误8、错误9、错误10、正确三、填空题1、双引号2、03、c=c+5|c=c-21【解析】根据ASCII码规律,要使字母循环后移5位输出,从a-u均不存在问题,但字母v(ASCII码值为118)后移5位,则ASCII值为123,不是循环到a(ASCII值为97),从而须执行c=c-21。4、定义语句|执行语句5、c,s,f,e。四、程序分析题1、8,42、['1abcedf2df']3、参考答案:112358132134554、【1】r=m,m=n,n=r【2】m%n五、编程题1、#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<math.h>

voidmain()

{

intscore,t;

printf("Pleaseenterascore:");

do

{

scanf("%d",&score);

}

while(score<0||score>100);

t=score/10;

/*************found**************/

switch(t)

{

case10:

case9:printf("优秀!\n");break;

case8:printf("良好!\n");break;

case7:printf("中等!\n");break;

case6:printf("及格!\n");break;

/*************found**************/

default:printf("不及格!\n");

}

}2、#include<stdio.h>

intmain()

{

inti=5;

voidpalin(intn);

printf("请输入5个字符\40:\40");

palin(i);

printf("\n");

}

voidpalin(n)

intn;

{

charnext;

if(n<=1){

next=getchar();

printf("相反顺序输出结果\40:\40");

putchar(next);

}else{

next=getchar();

palin(n-1);

putchar(next);

}

}3、#include<stdio.h>

intmain()

{

structstud_str

{

charnum[10];

floatscore_mid;

floatscore_final;

}stu[5];

floatsum_mid=0;

floatsu

温馨提示

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

评论

0/150

提交评论