C语言程序设计基础知到智慧树期末考试答案题库2024年秋临沂大学_第1页
C语言程序设计基础知到智慧树期末考试答案题库2024年秋临沂大学_第2页
C语言程序设计基础知到智慧树期末考试答案题库2024年秋临沂大学_第3页
C语言程序设计基础知到智慧树期末考试答案题库2024年秋临沂大学_第4页
C语言程序设计基础知到智慧树期末考试答案题库2024年秋临沂大学_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计基础知到智慧树期末考试答案题库2024年秋临沂大学循环for(;;)的循环条件始终为真。

A:对B:错

答案:对增1(或自增)、减1(或自减)运算符都是双目运算符。

A:错B:对

答案:错当以参数w打开文件时,若指定路径下已有同名文件,则覆盖原有文件。

A:错B:对

答案:对两个指针相加没有意义

A:错B:对

答案:对实参向形参进行数值传递时,数值传递的方向是单向的,即形参变量值的改变不影响实参变量的值

A:对B:错

答案:对C语言中,数组元素在内存中存放不是顺序存放,因此其地址也不连续

A:对B:错

答案:错C语言中,实参的个数、类型和位置必须与形参的定义一一对应

A:错B:对

答案:对指针做函数的参数时,本质上传递的是地址。

A:对B:错

答案:对程序中的"="是赋值符号,与数学中的等号功能相同。

A:对B:错

答案:错int a=5,*p;p=&a;则p的值为5。

A:对B:错

答案:错语句if(x=0)y=1;elsey=2;与()等价。

A:if(x==0)y=1;elsey=2;B:if(x!=0)y=2;elsey=1;C:if(x=0)y=2;elsey=1;D:x=0;if(x==0)y=2;elsey=1;

答案:x=0;if(x==0)y=2;elsey=1;根据下面的定义,能打印出字母M的语句是()。structperson{charname[10];intage;}c[10]={“John”,17,“Paul”,19,“Mary”,18,“Adam”,16};

A:printf(“%c”,c[3].name);B:printf(“%c”,c[2].name[1]);C:printf(“%c”,c[3].name[1]);D:printf(“%c”,c[2].name[0]);

答案:printf(“%c”,c[2].name[0]);下列程序段的输出结果是()。intmain(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);return0;}

A:1B:0C:3D:2

答案:0以下循环体执行的次数main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i)}

A:0B:1C:3D:2

答案:1变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足()。flag=1;denominator=1;item=1.0;pi=0;while(fabs(item)>=0.0001){item=flag*1.0/denominator;pi=pi+item;flag=-flag;denominator=denominator+2;}

A:item的绝对值大于0.0001B:item的绝对值小于等于0.0001C:item的绝对值大于等于0.0001D:item的绝对值小于0.0001

答案:item的绝对值小于0.0001执行以下程序段后,变量i的值是()inti=2;do{i+=5;}while(i<15);

A:21B:17C:16D:20

答案:17以下程序的结果是__。#includeint

a,b;voidfun(){

a=100;b=200;

}intmain(){

int

a=5,b=7;fun();printf("%d%d\n",a,b);return0;

}

A:75B:200100C:100200D:57

答案:57若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____。

A:p++B:*(p++)C:x++D:&x++

答案:x++若有说明:inti,j=7,*p=&i;则与i=j;等价的语句是__。

A:i=**p;B:i=&j;C:*p=j;D:i=*p;

答案:i=*p;用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下:(1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符。

调用Inverse()函数将字符串逆序存放,然后在主函数中输出逆序后的字符串。(2)在子函数Inverse()中实现字符串的逆序存放。函数原型为:

voidInverse(charstr[]);在空白处填写适当的表达式或语句,使程序完整并符合题目要求。1.#include2.#include3.#defineN804.voidInverse(charstr[]);5.

intmain()6.{7.

chara[N];8.

printf("Inputastring:\n");9.

________;10.

11.

Inverse(a);12.

printf("Inversedresults:\n");13.

________;14.

15.

return0;16.}17.

18.voidInverse(charstr[])19.{20.

int

len,i,j;21.

char

temp;22.

len=__________;23.

24.

for(___________;iA:第9行:

get(a)

第13行:put(a)

第22行:strlen(str)

第24行:i=1,j=lenB:第9行:

gets(a)

第13行:puts(a)

第22行:sizeof(str)

第24行:i=0,j=lenC:第9行:

getchar(a)

第13行:putchar(a)

第22行:sizeof(str)

第24行:i=1,j=len-1D:第9行:

gets(a)

第13行:puts(a)

第22行:strlen(str)

第24行:i=0,j=len-1

答案:第9行:

gets(a)第13行:puts(a)第22行:strlen(str)第24行:i=0,j=len-1爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

#include

intmain()

{

int

x=1,find=0;

while(__________)

//第1处

{

if(______________________)

//第2处

{

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

find=1;

}

x++;

}

return0;

}

A:第1处:

find!=1

第2处:

x/2==1&&x/3==2&&x/5==4&&x/6==5&&x/7==0B:第1处:

!find

第2处:

x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0C:第1处:

find!=0

第2处:

x%2=1&&x%3=2&&x%5=4&&x%6=5&&x%7=0D:第1处:

find==1

第2处:

x%2==1||x%3==2||x%5==4||x%6==5||x%7==0

答案:B:第1处:!find第2处:x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0以下程序的输出结果是__。#include

int

main(){

inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)

a[i]=i;for(i=0;i<3;

i++)

p[i]=a[i*(i+1)];for(i=0;i<3;

i++)

k+=p[i]*2;printf("%d\n",k);return0;}

A:21B:20C:23D:24

答案:21逻辑运算符两侧运算对象的数据类型()

A:只能是整型或字符型数据B:可以是任意类型的数据C:只能0或1D:只能0或非0整数

答案:可以是任意类型的数据对于下列程序,正确的是()。voidf(int*p){*p=5;}intmain(void){inta,*p;a=10;p=&a;f(p);printf(“%d”,(*p)++);return0;}

A:10B:11C:6D:5

答案:5已知下面程序的功能是:从键盘任意输入一个年号,判断它是否是闰年。若是闰年输出“Yes”,否则输出“No”。已知符合下列条件之一者是闰年:(1)能被4整除,但不能被100整除;(2)能被400整除。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。1.#include

2.intmain()3.{4.

int

year,flag;5.

printf("Inputayear:");6.

scanf("%d",&year);7.

8.

if(___________)9.

10.

flag=1;

/*如果year是闰年,则标志变量flag置1*/11.

else

12.

flag=0;

/*否则,标志变量flag置0*/13.

14.

if(___________)15.

16.

printf("%disaleapyear!\n",year);

/*打印“是闰年”*/17.

else18.

printf("%disnotaleapyear!\n",year);

/*打印“不是闰年”*/19.

20.

return0;21.}

A:第8行:

year/4==0||year/100!=0&&year/400==0

第14行:flag!=1B:第8行:

year%4==0||year%100!=0&&year%400==0

第14行:flag=1C:第8行:

year%4=0&&year%100!=0||year%400=0

第14行:flag=0D:第8行:

year%4==0&&year%100!=0||year%400==0

第14行:flag

答案:第8行:

year%4==0&&year%100!=0||year%400==0第14行:flag以下程序段的输出结果是intx=23;do{printf("%d",x--);}while(!x);

A:22B:死循环C:321D:23

答案:23设计一个函数,用来判断一个整数是否为素数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。1.#include2.#include3.intIsPrimeNumber(intnumber);4.intmain()5.{6.

intn,ret;7.

printf("Inputn:");8.

scanf("%d",&n);9.

ret=IsPrimeNumber(n);10.

if(___________)11.

{12.

printf("%disaprimenumber\n",n);13.

}14.

else15.

{16.

printf("%disnotaprimenumber\n",n);17.

}18.

return0;19.}20.//函数功能:判断number是否是素数,函数返回非0值,表示是素数,否则不是素数21.intIsPrimeNumber(intnumber)22.{23.

inti;24.

25.

if(number<=1)return0;//负数、0和1都不是素数

26.

for(i=2;________________;i++)27.

{28.

if(_______________)//被整除,不是素数29.

return0;30.

}31.

return1;32.}

A:第11行:

ret==0

第29行:

i<=number

第31行:

number%i=0B:第11行:

ret=0

第29行:

i<sqrt(number)

第31行:

number/i==0C:第11行:

ret!=1

第29行:

i<number

第31行:

number/i=0D:第11行:

ret!=0

第29行:

i<=sqrt(number)

第31行:

number%i==0

答案:D:第11行:ret!=0第29行:i<=sqrt(number)第31行:number%i==0以下程序段的输出结果是intn=9;while(n>6){n--;printf("%d",n);}

A:8765B:876C:987D:9876

答案:876如果变量定义如下,则正确的语句是()。inti,j,tab[3][4];

A:tab=100;B:for(i=1;i<=3;i++){

for(j=1;i<=4;j++){

scanf(“%d”,&a[i][j];

}

}C:for(i=0;i<3;i++){

for(j=0;j<4;j++){

printf("%4d",tab[i][j]);

}

printf("\n");

}D:tab[0][]=0;

答案:for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%4d",tab[i][j]);}printf("\n");}运行以下代码的结果是(省略框架代码)inta=1,b=2,c=3,t;while(a

A:2,1,1B:1,2,0C:2,1,0D:1,2,1

答案:1,2,1执行下面的程序后,a值为()inta,b;for(a=1,b=1;a<=10;a++){if(b>=5)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d",b);

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

答案:7将两个字符串连接起来组成一个字符串时,选用函数

A:strlen()B:strcpy()C:strcmp()D:strcat()

答案:strcat()有如下定义:structStudent{charname[10];intage;chargender;}std[3],*p=std;则以下各输入语句中错误的是:

A:scanf("%c",&std[0].gender);B:scanf("%s",&);C:scanf("%c",&(p->gender));D:scanf("%d",&(*p).age);

答案:scanf("%s",&);数值为9的表达式是()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

A:*p+9B:p+8C:*p+=9D:*(p+8)

答案:*(p+8)根据声明inta[10],*p=a;,下列表达式错误的是()。

A:p[5]B:a[9]C:a++D:*p++

答案:a++若有定义“chara;intb;floatc;doubled;”,则表达式“a*b+d-c”值的类型为()

A:doubleB:floatC:intD:char

答案:double若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,____是正确的

A:p2=p1B:p2=**p1C:p2=&p1D:p2=*p1

答案:p2=p1;有以下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为()

A:数组x的长度小于数组y的长度B:数组x和数组y等价C:数组x和数组y的长度相同D:数组x的长度大于数组y的长度

答案:数组x的长度大于数组y的长度关于以下程序段叙述正确的是()intm=20;while(m=0)m=m++;

A:循环执行0次B:循环执行无限次C:循环执行1次D:循环执行10次

答案:B:循环执行无限次阅读程序,选择程序的运行结果()。#include"stdio.h"inttry(int);intmain(){

intx;

x=try(5);

printf("%d\n",x);}inttry(intn){

if(n>0)

return(n*try(n-2));

else

return(1);}

A:1B:15C:均错误D:120

答案:15以下程序的运行结果是__。#includeintmain(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){

k=k+p[i];

i++;}printf("%d\n",k);return0;}

A:58B:24C:56D:45

答案:24下面程序代码的功能是判断输入整数的正负性和奇偶性,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。1.#include2.intmain()3.{4.

intm;5.

printf("Inputm:");6.

scanf("%d",&m);

//输入一个整数7.

if(m>0)

//是否为正数8.

{9.

if(m%2==0)

//是正数,且能被2整除,则是正偶数10.

{11.

printf("%disapositiveeven\n",m);12.

}13.

else

//不能被2整除,则是正奇数14.

{15.

printf("%disapositiveodd\n",m);16.

}17.

}18.

19.

_______________

//判断是否为负数20.

21.

{22.

_______________23.

24.

{25.

printf("%disanegativeeven\n",m);

//是负偶数26.

}27.

else28.

{29.

printf("%disanegativeodd\n",m);

//是负奇数30.

}31.

}32.

else33.

{34.

printf("%diszero.Itisaneven\n",m);

35.

}36.

return0;37.}

A:第19行代码:else

第22行代码:if(m%2!=0)B:第19行代码:elseif(m<0)

第22行代码:if(m%2==0)C:第19行代码:if(m<0)

第22行代码:if(m%2==0)D:第19行代码:if(m<0)

第22行代码:if(m%2!=0)

答案:第19行代码:elseif(m<0)第22行代码:if(m%2==0)若有以下语句,则下面表达式的值为1002的是()。structstudent{intage;intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,2}};structstudent*p;p=stu;

A:(*p).numB:(*++p).ageC:(p++)->ageD:(p++)->num

答案:(*++p).age要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确实现此功能的函数是

A:voidfuna(int*x,int*y)

{

intt=*x;

*x=*y;

*y=t;

}B:voidfuna(intx,inty)

{

intt;

t=x;x=y;y=t;

}C:voidfuna(int*x,int*y)

{

int*p;

*p=*x;*x=*y;*y=*p;

}D:intfuna(int*x,int*y)

{

*x=*y;*y=*x;

}

答案:voidfuna(int*x,int*y){intt=*x;*x=*y;*y=t;}以下程序段的输出结果是inti;for(i=1;i<=5;i++){if(i%2)printf("<");elsecontinue;printf(">");}printf("$");

A:<><>$B:<><><>$C:<<<$D:<<<>>>$

答案:<><><>$在嵌套使用if语句时,C语言规定else总是()。

A:和之前与其最近的if配对B:和之前与其具有相同缩进位置的if配对C:和之前的第一个if配对D:和之前与其最近的且不带else的if配对

答案:和之前与其最近的且不带else的if配对以下程序的运行结果是__。#includeintmain(){inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=1;i<3;i++)

s=s+a[b[i]];printf("%d\n",s);return0;}

A:15B:10C:5D:11

答案:5如果函数fun的定义形式为voidfun(charch,floatx)则以下对函数fun的调用语句中,正确的是

A:t=fun(‘D’,16.5);B:fun(abc,3.0);C:fun(‘65’,2.8);D:fun(32,32);

答案:fun(32,32);下列程序的运行结果是#includeintmain(void){

inta,b,c;

a=20;b=30;c=10;

if(a<b)a=b;

if(a>=b)b=c;c=a;

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

return0;}

A:a=20,b=10,c=30B:a=20,b=10,c=20C:a=30,b=10,c=30D:a=30,b=10,c=20

答案:a=30,b=10,c=30已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()。

A:ptr1=ptr2;B:ptr2=k;C:k=*ptr1*(*ptr2);D:k=*ptr1+*ptr2;

答案:ptr2=k输入某班学生某门课的成绩(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。1.#include

2.#defineN403.intGetFailNum(intscore[],intn);4.intmain()5.{6.

inti,n,fail,score[N];7.

printf("Howmanystudents?");8.

scanf("%d",&n);9.

for(i=0;iA:第19行:intscore

第24行:score[i]<=60

第26行:countB:第19行:intscore

第24行:score[i]>=60

第26行:score[i]C:第19行:intscore[]

第24行:score[i]<=60

第26行:iD:第19行:intscore[]

第24行:score[i]<60

第26行:count

答案:第19行:intscore[]第24行:score[i]<60第26行:count下面程序的功能是从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。程序的运行结果如下:Inputdatais:-4213↙Thesumofthetotalbitis10按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。1.#include2.#include3.intmain()4.{

5.

inti1,i2,i3,i4,k,n;

6.

printf("Inputdatais:");

7.

scanf("%d",&n);

8.

k=fabs(n);

//取绝对值

9.

i1=___________;

//分

温馨提示

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

评论

0/150

提交评论