佛山科学技术学院历年C语言程序设计期末练习及答案_第1页
佛山科学技术学院历年C语言程序设计期末练习及答案_第2页
佛山科学技术学院历年C语言程序设计期末练习及答案_第3页
佛山科学技术学院历年C语言程序设计期末练习及答案_第4页
佛山科学技术学院历年C语言程序设计期末练习及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

2/2佛山科学技术学院C语言程序设计期末练习一、单项选择题(共20题,每小题2分,共40分)1、以下数值中,不正确的八进制数或十六进制数是________。 A、0x16 B、016 C、-16 D、0xaaaa2、若x为int型变量,则执行以下语句后,x的值为。x=6;x+=x-=x*x; A、36 B、-60 C、60 D、-243、下列关于指针变量的描述,不正确的是________。 A、在没有对指针变量赋值时,指针变量的值是不确定的 B、同类指针类型可以进行相减操作 C、在使用没有赋值的指针变量时,不会出现任何问题 D、可以通过指针变量来取得它指向的变量值4、switch语句不能用于下列哪种数据类型() A、double B、byte C、short D、char5、下列叙述中正确的是________。 A、只能在循环体内和switch语句体内使用break语句 B、continue语句的作用是结束整个循环的执行 C、在循环体内使用break语句或continue语句的作用相同 D、从多层循环嵌套中退出时,只能使用got0语句6、已知三个字符为a、z和8,按它们的ascii码值升序排序,结果是________。 A、8,a,Z B、a,8,Z C、a,Z,8 D、8,Z,a7、语句"while(!f);"中的条件"!f"等价于() A、f==0 B、f!=1 C、f!=0 D、~f8、若有以下的定义:intt[3][2];

能正确表示t数组元素地址的表达式是________。 A、&t[3][2] B、t[3] C、&t[1] D、t[2]9、有下面程序段chara[3],b[]="china";a=b;printf("%3",a);则下面的说法正确的是______。 A、运行后见输出China B、运行后见输出Ch C、运行后见输出Chi D、编译出错10、在宏定义#definePI3.14159中,用宏名代替一个________。 A、常量 B、单精度数 C、双精度数 D、字符串11、设有数组定义:chararray[]="student";则数组所占的存贮空间为________。 A、6个字节 B、7个字节 C、8个字节 D、9个字节12、若有定义:char*x="abcdefghi";以下选项中正确运用了strcpy函数的是______。 A、chary[10];strcpy(y,x[4]); B、chary[10];strcpy(++y,&x[1]); C、chary[10],*s;strcpy(s=y+5,x); D、chary[10],*s;strcpy(s=y+1,x+1);13、下面语句中()是c语言的正确赋值语句。 A、a=1,b=2 B、I++; C、a=b=5 D、y=int(x);14、c语言中函数返回值的类型是由决定的. A、函数定义时指定的类型 B、return语句中的表达式类型 C、调用该函数时的实参的数据类型 D、形参的数据类型15、下列程序运行结果为:

#defineP3

#defineS(a)P*a*a

main()

{intar;

ar=S(3+5);

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

} A、192 B、29 C、27 D、2516、以下程序运行后的输出结果是________。

#include<stdio.h>

main()

{

ints=0,k;

for(k=7;k>=0;k--)

{

switch(k)

{

case1:case4:case7:s++;

break;

case2:case3:case6:break;

case0:case5:s+=2;

break;

}

}

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

} A、s=5 B、s=1 C、s=3 D、s=717、下面哪个不是关键字? A、int B、struct C、define D、continue18、下面程序的输出结果为________。

main()

{

inta,b;

b=(a=3*5,a*4,a*5);

printf(""%d"",b);

} A、60 B、75 C、65 D、无确定值19、inta[5],*p=a;对a数组元素地址的正确引用是________。 A、p+5 B、&a[0] C、&a+1 D、*a+120、有如下定义

structperson

{

charname[9];

intage;

};

structpersonclass[10]={"johu",17,"paul",19,"mary",18,"adam",16};

根据上述定义,能输出字母m的语句是______。 A、prinft("%c\n",class[3].name); B、printf("%c\n",class[3].name[1]); C、prinft("%c\n",class[2].name[1]); D、printf("%c\n",class[2].name[0]);二、判断题(共10题,每小题2分,共20分)()1、若有定义:inta;则scanf("%d",a);可以给变量a赋值。()2、位运算符是针对二进制数的每一位进行运算的符号,是专门针对数字0和1进行操作的。()3、在if语句中,必须出现else。()4、while循环语句的循环体至少执行一次.()5、c语言约定'\0'计入字符串的长度。()6、c程序总是从main函数的第一条语句开始执行的。()()7、以下定义了一个一维数组str,该数组可以存放81个字符型数据。charstr[81];()8、c语言规定,函数返回值的类型是由return语句中表达式类型所决定的。()()9、在对数组全部元素赋初值时,可以省略行数,但不能省略列数()10、当一个c语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。三、编程题(共3题,共40分)1、编写程序:求元素个数为10的一维数组元素中的最大值和最小值。(本题10分)2、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

char*proc(char(*a)[81],intnum)

{

}

voidmain()

{

charss[l0][81],*max;

intn,i=0;

printf("输入若干个字符串:");

gets(ss[i]);

puts(ss[i]);

while(!strcmp(ss[i],"****")==0)

{

i++;

gets(ssei]);

puts(ss[i]);

}

n=i;

max=proe(ss,n);

printf("\nmax=%s\n",max);

}(本题14分)3、题⽬描述,逆序输出成绩表

输⼊⼀组学⽣的成绩,将输⼊内容逆序输出。

输⼊

输⼊格式为每⾏两个数值,学号N为10位数字,成绩S取值为整数(0≤S≤100)

读取输⼊直到输⼊结束(数据总量不超过50⾏)

输出

输出格式为每⾏两个数值,学号N之后有⼀个空格,成绩值的输出宽度占3个位置

样例输⼊

20####040578

20####042680

20####040261

20####037795

样例输出

20####037795

20####040261

20####042680

20####040578(本题16分)

参考答案一、单项选择题1、C2、B3、C【解析】没有赋值的指针变量,可能指向任何地方,如果指向系统,那么使用该指针可能导致系统崩溃。4、A【解析】swish语句中表达式expression只能返回这几种类型的值:int、byte、short和char。如果比较的数据类型是double型,则不能使用switch结构。5、A6、D7、A8、D9、D10、D11、C12、D【解析】字符串复制函数strcpy调用形式为:“strcpy(s1,s2)”,其功能为把s2所指字符串的内容复制到s1所指空间,函数返回s1的值,即目的串的首地址。为保证复制的合法性,s1必须指向一个足够容纳s2串的存储空间。13、B14、A15、B16、D17、C18、B19、B【解析】A越界,C和D表达错误。20、D二、判断题1、错误2、正确3、错误4、错误5、错误6、正确7、正确8、错误9、正确10、错误三、编程题1、#include"stdio.h"

main()

{

intterm[10];

inti,max,min;

printf("请输入10个整数:");

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

{

scanf("%d",&term[i]);

max=term[0];

min=term[0];

}

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

{

if(term[i]<min)min=term[i];

if(term[i]>max)max=term[i];

}

printf("max=%d,min=%d",max,min);

}2、char*proc(char(*a)[81],intm)

{

char*max;

inti=0:max=a[0]:for(i=0;i<m;i++)if(strlen(max)<strlen(a[i]))//找出最长的字符串max=a[i];

returnmax;

//返回最长字符串的地址

}3、#include<stdio.h>

#include<string.h>

constintN=50+5;

typedefstructstudent{

charno[1

温馨提示

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

评论

0/150

提交评论