阅读程序写结果(函数)
- 格式:doc
- 大小:57.50 KB
- 文档页数:9
考试题型一、单项选择题(30分)二、填空题(20分)三、阅读程序写结果(20分)四、编程序题(30)复习题一一、选择题1.下列说法中正确的是。
A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成2.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为。
A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,23.设有int i=010,j=10;则printf("%d,%d\n",++i,j--); 的输出的是。
A.11,10 B.9,10 C.010,9 D.10,9 4.设a、b为字符型变量,执行scanf("a=%c,b=%c",&a,&b); 后使a为'A', b为'B',从键盘上的正确输入是。
A.'A' 'B' B.'A','B' C.A=A,B=B D.a=A,b=B5.已知int x=12, y=3;执行下述程序后,变量x的值是____。
do{ x/=y--;}while(x>y);A.1 B.2 C.3 D.程序运行有错误6.C语言中while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句7.设x和y均为int型变量,则执行下面的循环后,y的值为。
for (y=1,x=1;y<=50;y++) {if (x>=10 ) break;if (x%2==1) {x+=5;continue;}x - =3;}A.2 B.4 C.6 D.88.以下正确的说法是____。
习题4一、单项选择题1.若有说明inta[3][4];则a数组元素的非法引用是【】A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]【答案】D【解析】数组下标从0开始,a[0][4]的列下标越界。
2.在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式【答案】C3.以下不正确的定义语句是【】A.doublex[5]={2.0,4.0,6.0,8.0,10.0};B.inty[5]={0,1,3,5,7,9};C.charc1[]={′1′,′2′,′3′,′4′,′5′};D.charc2[]={x1′0′x,a′′x,8′′};【答案】B【解析】初始值的个数大于数组的大小,系统会出现编译错误。
4.对以下说明语句的正确理解是【】inta[10]={6,7,8,9,10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值的个数不相同,所以此语句不正确【答案】B5.若有说明:inta[][4]={0,0};则下面不正确的叙述是【】A.数组a的每个元素都可得到初值0B.二维数组a的第一维大小为1C.当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值【答案】D【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。
元素a[0][0]和a[0][1]赋初值为0,其余元素初值系统默认为0。
6.以下能对二维数组c进行正确的初始化的语句是【】A.intc[3][]={{3},{3},{4}};B.intc[][3]={{3},{3},{4}};C.intc[3][2]={{3},{3},{4},{5}};D.intc[][3]={{3},{},{3}};【答案】B【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。
2019CCF非专业级别软件能力认证第一轮认证入门级(CSP-J)参考答案一、单项选择题(共15题,每题2分,共计30分)12345678910A D C A A D C CB C1112131415C A C B A二、阅读程序(共3题,除特殊说明外,判断题 1.5分,选择题3分,共计40分)1.×,√,×,√,B,B2.√,×,×,×,A,A3.×,√,A,D,D,B三、完善程序(共10题,每题3分,共计30分)第1题第2题1234512345 C D B B B B D C A B【解析】一、单项选择题1.常识题,中国国家顶级域名为.cn。
2.考查二进制的基本运算。
按位与的操作是对二进制每一位对应做与,两个数这一位都是1,结果才是1。
3.一个字节包含8位二进制数,故应该占4字节。
4.分析过程可以知道,s先被赋值成了a又减掉了c个1,所以就是a-c。
5.比100大的最小的二的次方是128,是27,所以需要7次。
6.链表只能顺序查找元素,不能实现随机访问。
7.为了避免重复,我们可以设后边的袋子装的不比前边多,把所有情况列出来即可,共18种。
8.下标最大的一个结点是最右下方的结点,下标为2*(2*(2*1+1)+1)+1= 15。
9.可以通过从大到小枚举每个数验证得知100以内最大素数为97。
10.可以通过试除的方法算出这两个数的最大公约数是29。
11.连续跑5公里肯定是更好的,所以就在周五到周日3天跑5公里,周一到周四中选2天跑3公里即可。
12.根据鸽巢原理,最平均的分法就是每种花色先有3张,此时最后一张无论是什么花色都会导致有4张牌花色一致。
13.只需要考虑前3位,后2位是必须根据前边对应过来的,前两位取这5个数都可以,中间那一位只能取0、1、8,所以总共5*5*3=75个。
14.根据后序遍历找当前子树的根,根据中序遍历再把当前子树拆成左右子树,递归建树,然后进行前序遍历。
扬州大学试题纸系课程C语言程序设计(A)卷2002—2003学年第2学期班级_________学号________姓名__________得分___________一、选择题(每题分,共30分):1、已知:char a; int b; float c; double d;则执行语句:c=a+b+c+d; 后,变量c的类型为。
A. charB. intC. floatD. double2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时,从第一列开始输入数据12345 67<回车>,则y的值是。
A. 无定值B. 345.00000C.D.3、设有以下程序段int x=0; s=0;while (!x!=0) s+=++x;printf(“%d”,s);则。
A. 运行程序段后输出0B. 运行程序段后输出1C. 程序段中的控制表达式是非法的D. 程序段执行无限次4、若i为整型变量,则以下循环执行次数是。
for(i=2; i==0;) printf(“%d”, i--);A. 无限次B. 2次C. 1次次5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是.A. (*p)++;B. ch+=—‘a’+’A’;C. toupper(ch)=ch;D. ch++;6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”};则language[2]的值是。
A. 一个字符B. 一个地址C. 一个字符串D. 一个不定值7、C语言程序中,当调用函数时。
A. 实参和虚参可以共用存储单元B. 实参和虚参各占一个独立的存储单元C. 可以由用户指定是否共用存储单元D. 由计算机系统自动确定是否共用存储单元8、在程序中要使用语句:printf(“%s\n”, STRING);输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
第十四届全国青少年信息学奥林匹克联赛初赛试题2008(普及组 C++语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)。
1.微型计算机中,控制器的基本功能是()。
,a,则A. 28B. 29C. 16D. 1710.Web2.0是近年来互联网的热门概念之一,其核心思想是互动与分享。
下列网站中,()是典型的Web2.0应用。
A. SinaB. FlickrC. YahooD. Google11.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列B. 多维数组C. 线性表D. 栈12. (2008)10 + (5B)16的结果是()。
精心整理A. (833)16B. (2089)10C. (4163)8D. (100001100011)213. 二叉树T,已知其先根遍历是1 2 4 3 5 7 6(数字为结点的编号,以下同),中根遍历是2 4 1 57 3 6,则该二叉树的后根遍历是()。
A. 4 2 5 7 6 3 1B. 4 2 7 5 6 3 1C. 7 4 2 5 6 3 1D. 4 2 7 6 5 3 114.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
等。
二.问题求解(共2题,每题5分,共计10分)1. 书架上有4本不同的书A、B、C、D。
其中A和B是红皮的,C和D是黑皮的。
把这4本书摆在书架上,满足所有黑皮的书都排在一起的摆法有_____种。
满足 A必须比C靠左,所有红皮的书要摆放在一起,所有黑皮的书要摆放在一起,共有______种摆法。
2.有6个城市,任何两个城市之间都有一条道路连接,6个城市两两之间的距离如下表所示,则城市1精心整理2.#include<iostream>using namespace std;void foo(int a, int b, int c){if(a > b)foo(c, a, b);else精心整理cout<<a<<','<<b<<','<<c<<endl;}int main(){int a, b, c;cin >> a >> b >> c;foo(a, b, c);}int main(){int a[20], i, m;m=10;精心整理for(i=0; i<m; i++){cin>>a[i];}func(a, m);for (i=0; i<m; i++)cout<<a[i]<<" ";solve(first, spos_f + 1, spos_f + (root_m - spos_m), mid, spos_m, root_m - 1); solve(first, spos_f + (root_m - spos_m) + 1, epos_f, mid, root_m + 1, epos_m);cout << first[spos_f];}int main(){精心整理char first[MAX], mid[MAX];int len;cin >> len;cin >> first >> mid;solve(first, 0, len - 1, mid , 0, len - 1);cout << endl;return 0;S,第S中的bfor (i = 0;i < 26;i ++){if ( ① )change[i] -= 'A' - 'a';}}精心整理void ChangeString(){int i;for (i = 0;i <strlen(str);i ++){if ( ② )str[i] = change[str[i] - 'A'] -'a' + 'A';6}中int a[1000001],n,ans = -1;void swap(int &a,int &b){int c;c = a; a = b; b = c;}精心整理int FindKth(int left, int right, int n){int tmp,value,i,j;if (left == right) return left;tmp = rand()% (right - left) + left;swap(a[tmp],a[left]);cin >> n;ans = FindKth(1,m,n);cout << a[ans];return 0;}精心整理参考答案一.选择题ABCCB DCDAB DABBB ABABD二.问题解答1.12 4精心整理2.7三.阅读程序1.232. 2.,3,13. 5 4 10 1 6 22 -59 -6 -11 -64. DBGEFCA四.完善程序1.(1)change[i] >= 'A' && change[i] <= 'Z'(只写change[i] <= 'Z'也对)精心整理。
c语言程序设计试题及答案第一章基础知识一、填空1.每个C程序都必须有且仅有一个________函数。
2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3.软件是程序,以及______、使用和维护所需要的所有文档。
4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类6.C语言是由________组成的。
7.C语言的函数可分为主函数main、标准库函数和_________。
8.一个函数是由两部分组成的,即:________和函数体。
9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14.C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
【阅读程序题参考答案】【2.1】参考答案:D注释:程序中除法运算的两个操作数均是整型,运算结果也是整型。
【2.2】参考答案:B注释:C语言允许在程序块(分程序)中说明变量。
【2.3】参考答案:C注释:变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。
【2.4】参考答案:D注释:对变量x的――操作是后缀形式,变量x的减1操作要在执行完 printf 函数之后才进行,所以变量x的值在输出的时候仍然保持原值10。
【2.5】参考答案:B注释:C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n,而且每一个表达式作为一个处理单元,也就是说在不同的表达式中自增自减运算是单独考虑的。
【2.6】参考答案:A注释:变量x和变量y做按位与,结果为0x0200,右移4位为0x0020,再与0x005f 做按位或,最后结果为0x007f。
【2.7】参考答案:A注释:逗号表达式的结果是用逗号分开的最后一个表达式的值,此题由于 c=='A'的值是0,所以逗号表达式的值为0。
【2.8】参考答案: B【2.9】参考答案: A【2.10】参考答案: C注释:在输出格式描述"%m.ns"中,m是输出总长度,n是实际字符的个数,这里m没有给出,则输出总长度就是实际输出字符的个数。
【2.11】参考答案: C【2.12】参考答案:B【2.13】参考答案:C【2.14】参考答案:B【2.15】参考答案:D【2.16】参考答案:A【2.17】参考答案: C【2.18】参考答案:A【2.19】参考答案: C注释:在switch语句中,case本身仅起到语句标号的作用,不会改变语句的流程,执行break语句才能退出当前的switch语句。
【2.20】参考答案: D注释:siwtch语句的表达式中,变量c是后缀的增一运算,第一次执行do-while 循环时,执行case 'A'后面的语句。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);} 三、阅读程序题(1)3.141593,3.1416,3.142(2)6,8(3)4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
第十三届全国青少年信息学奥林匹克联赛初赛试题NOIP2007 初赛试题(普及组C++ 二小时完成)一、单项选择题(共20 题,每题 1.5 分,共计30 分。
每题有且仅有一个正确答案)。
1. 在以下各项中,()不是CPU 的组成部分。
A. 控制器B.运算器C.寄存器D.主板2.在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。
A. 二叉树B.多叉树C.哈希表D.二维表3.在下列各项中,只有()不是计算机存储容量的常用单位。
A. ByteB. KBC.UBD.TB4.ASCII 码的含义是()。
A. 二─十进制转换码B.美国信息交换标准代码C. 数字的二进制编码D.计算机可处理字符的唯一编码5.一个完整的计算机系统应包括()。
A.系统硬件和系统软件B.硬件系统和软件系统C. 主机和外部设备D.主机、键盘、显示器和辅助存储器6. IT 的含义是()。
A. 通信技术B.信息技术C.网络技术D.信息学7.LAN 的含义是()。
A. 因特网B.局域网C.广域网D.城域网8. 冗余数据是指可以由其他数据导出的数据,例如,数据库中已存放了学生的数学、语文和英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看作冗余数据。
冗余数据往往会造成数据的不一致,例如,上面 4 个数据如果都是输入的,由于操作错误使总分不等于三科成绩之和,就会产生矛盾。
下面关于冗余数据的说法中,正确的是()。
A. 应该在数据库中消除一切冗余数据B. 用高级语言编写的数据处理系统,通常比用关系数据库编写的系统更容易消除冗余数据C. 为了提高查询效率,在数据库中可以适当保留一些冗余数据,但更新时要做相容性检验D. 做相容性检验会降低效率,可以不理睬数据库中的冗余数据9.在下列各软件中,不属于NOIP 竞赛(复赛)推荐使用的语言环境有()。
A. gccB. g++C. Turbo CD. free pascal10. 以下断电之后仍能保存数据的有()。
上级实验参考答案#include "stdio.h"#include"math.h"int main(){ int i;double a, b;for(i=0;i<=100000;++i){a=sqrt(i+100);b=sqrt(i+168);if((int)a==ceil(a)&&(int)b==ceil(b))printf("%d\n",i);}}实验2 基本数据类型、运算和表达式一、实验目的1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。
2)掌握不同的类型数据之间赋值的规。
3)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加++ )和自减--)运算符的使用。
4 )进一步熟悉C 程序的编辑、编译、连接和运行的过程。
二、实验内容1. 变量的定义[题目1117:变量定义,按要求完成程序]下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。
void main(){int a, b; /*定义整型变量a 和b*/int i, j; /*定义实型变量i 和j */a=5;b=6;i=3.14;j=i*a*b;printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i,j);}[具体操作步骤]1)将代码补充完整;2)在TC 或VC++上运行通过;3)在JudgeOnline 实验系统上提交;2. 赋值表达式与赋值语句[题目1118:赋值表达式与赋值语句,写出程序运行结果]阅读下面程序,写出运行结果:void main(){ float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e='\\';printf("%f,%d,%d,%c,%c", a,b,c,d,e);}运行结果为:3.500000,3,330,J,\[提示]赋值语句具有类型转换的功能,但可能会改变数据。
程序设计一、程序阅读题,写出程序的输出结果1.main(){int i=3while(i<10)){if(i<6){i+=2;continue;}elseprintf(“%d”,++i);}}_____________8910______。
2.main(){int i=3while(i<10)){if(i<6){i+=2;continue;}elseprintf(“%d”,++i);}}_____________8910______。
3.#include “stdio.h”main(){int i, j;i=j=2;if(i==1)if(i==2)printf(“%d”,i=i+j);elseprintf(“%d”,i=i-j);printf(“%d”,i);}____________2_______。
二、填空题:4.写出满足下列条件的表达式:a和b都不小于c_____a>=c&&b>=_c_________。
5.表达式10+16%3的值为______15_____。
6.下面函数的功能是求1到n的和请把程序补充完整。
long sum( int n){ int i;_____int s=0;_______for(i=1;i<=n;i++)______s+=i;____________return s;}7.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为____0__。
8.有如下程序段int *p,a=10,b=1; p=&a; a=*p+b;执行该程序段后,a的值为11 。
9.以下程序的输出结果为 3 。
void main( ){ int i,j,a[ ]={1,2,3,4,5,6,7,8,9,10};int sum=0;for (i=0;i<10;i++)sum=sum+a[i];printf("%4d",sum);}10.若有定义int a[2][5],则整型数组a包含有10 个元素。
C语言程序设计实验报告(实验名称:函数)1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;(3)掌握函数的嵌套调用及递归调用的用的设计方法;(4)在编程过程中加深理解函数调用的程序设计思想。
2实验内容(1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。
要求:①在主函数中输入一个整数x(直接赋值或从键盘输入);②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not aprime number”;③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。
(2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。
如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:①在主函数中从键盘输入一对整型数据a和b;②调用函数后,根据返回值对a和b的关系进行说明。
例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。
3算法描述流程图(1)primeNum(int x)(判别一个数是否是素数)函数流程图①主函数流程图:②判断素数函数流程图:(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图①主函数流程图:②判断倍数流程图:4源程序(1)判断某个数是否是素数#include <stdio.h>int primNum(int x) /*编写函数判断某个数是否是素数*/ {int i;if (x==0||x==1) /*当x等于1或等于0时判断是否为素数*/return 0;for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数*/{if (x%i==0)return 0;}if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数*/ return 1;}void main(){int n ;printf("Please input an integer:"); /* 提示从键盘输入一个数x */scanf("%d",&n);if (primNum(n)==1) /* 调用定义的函数*/ printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数*/ elseprintf("%d is not a prime number\n",n);}(2)个数是否是整数倍关系#include <stdio.h>int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/{if (a%b==0) /* 判断出a是b的整数*/return 1;else /* 判断出a不是b的整数*/return 0;}void main (){int m,n;printf ("please input tow integers:\n"); /*提示从键盘输入两个数*/scanf ("%d%d",&m,&n); /*从键盘输入两个数的值*/if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/printf("%d is a multiple of %d\n",m,n);elseprintf("%d is not a multiple of %d\n",m,n);}5测试数据(1)实验(1)测试数据为0,1,2,5,9,13,59,121 运行结果当测试数据0时当测试数据1时当测试数据2时当测试数据5时当测试数据9时当测试数据13时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。
1.有以下程序段,运行后的输出结果是【1】:float fun(int x,int y){ return(x+y);}main(){ int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 2. 下列程序段执行后的输出结果是【2】void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){ i+=2;func2(i); } }void func2(int i){ printf("%c",st[i]);if(i<3){i+=2; func1(i); } } main(){ int i=0; func1(i); printf("\n"); }3. 有以下程序段,运行后的输出结果是【3】:int f(int n){ if(n==1)return 1;else return f(n-1)+1; }main(){ int i,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j); }4. 有如下程序段,运行后的输出结果是【4】:long fib(int n){ if(n>2)return(fib(n-1)+fib(n-2));else return(2); }main(){ printf("%d\n",fib(3)); }5. 下列函数的运行结果是【5】int f(int a,int b){ int c;if(a>b)c=1;else if(a==b)c=0;else c=-1;return(c);}main(){ int i=2,p; int j,k; j=i; k=++i;p=f(j,k); printf("%d",p);}6.阅读下列程序段,当运行函数时,输入asd af aa z67,则输出为【6】int fun (char *str){ int i,j=0;for(i=0;str[i]!=′\0′;i++)if(str[i]!=′′)str[j++]=str[i];str[j]= ′\0′;}main(){ char str[81]; int n; clrscr();printf("Input a string : "); gets(str);puts(str); fun(str); printf("%s\n",str); } 7.以下程序段的输出结果是【7】long fun(int n){ long s;if(n==1||n==2)s=2;else s=n-fun(n-1);return s;}main(){ printf("%ld\n", fun(3)); } 8.已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的正确输出结果是【8】void print_value(int *x){ printf("%d\n",++*x); } 9. 以下程序段的输出结果是【9】int f(){ static int i=0; int s=1;s+=i; i++; return s; } main(){ int i,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}10. 阅读下面程序段段,则执行后输出的结果是【10】main(){ char fun(char,int);char a=′A′; int b=13;a=fun(a,b); putchar(a);}char fun(char a,int b){ char k; k=a+b; return k; }11.现有如下程序段,程序段的输出结果是【11】int fun(int x){ printf("x=%d\n",++x); }main(){ fun(12+5); }12.现有如下程序段,程序段的输出结果是【12】int aa(int x,int y){ int w; while(y){ w=x%y; x=y; y=w; } return x; }main(){ int a=24,b=16,c; c=aa(a,b);printf("%d\n",c); }13.下列程序段的输出结果是【13】#define N 3#define M 3void fun(int a[M][N]){ printf("%d\n",*(a[1]+2)); }main(){ int a[M][N]; int i,j;for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=i+j-(i-j);fun(a); }14. 阅读下面程序段,则执行后的结果为【14】fun1(){ int k=20; return k; }fun2(){ int a=15; return a; }fun3(int a,int b){ int k; k=(a-b)*(a+b); printf("%d\n",k); } main(){ fun3(fun1(),fun2()); }15. 阅读下面程序段,则程序段执行后的结果为【15】main(){ int a=4,b=6,c=7; double d;double fun(int,int,int);d=fun(a,b,c); printf("%lf\n",d); }double fun(int a,int b,int c){ double s; s=a%b*c; return s; }16. 现有如下程序段,则程序段的输出结果为【16】int f(int a,int b){ int c;if(a>0&&a<10)c=(a+b)/2;else c=a*b/2;return c; }main(){ int a=8,b=20,c; c=f(a,b); printf("%d\n",c);} 17.阅读如下程序段,执行后的输出结果为【17】main(){ char c; int i; char count(); int p(char); for(i=0;i<30;i++)c=count(); p(c); } char count(){ char str=′A′; str+=1; return(str); } p(char c){ putchar(c); putchar(′\n′); }18. 阅读程序段,则执行后的结果为【18】test1(){ int x=0; x++; return x; }test2(){ static int x=0; x++; return x; } main(){ int i,m,n;for(i=0;i<3;i++){ m=test1(); n=test2(); }printf("%d,%d\n",m,n); }19.以下程序段的输出结果是【19】。
void fun(){ static int a=0; a+=2; printf("%d",a); } main(){ int cc;for(cc=1;cc<4;cc++)fun();printf("\n"); }20. 以下程序段运行结果是【20】。
long fib (int g){ switch (g){ case 0∶return 0;case 1∶case2∶return 1; }return (fib (g-1)+fib(g-2));}main (){ long k; k=fib (5); printf ("k=%(d\n)",k); } 21.以下程序段的输出结果是【21】。
unsigned fun6(unsigned num){ unsigned k=1;do { k *=num ; num/=10; } while (num);return k; }main(){ unsigned n=26; printf("%d\n", fun6(n)); } 22.以下函数的功能是【22】。
float av(float a[], int n){ int i; float s;for(i=0, s=0; i<N;i++)s=s+a[I];return s/n; }23 现有如下程序段,输出结果为【23】。
int fun(){ static int k; return k; }main(){ int m; m=fun(); printf("%d\n",m); }24. 有以下程序段,运行后的输出结果是【24】。
main(){int i,n[]={0,0,0,0,0};for (i=1;i<=4;i++){ n[i]=n[i-1]*3+1; printf(”%d ",n[i]);}}25. 有以下程序段,运行后的输出结果是【25】int *f(int *p,int*q){return(*p>*q)?p:q;}main(){int m=1,n=2,*r=&m;r=f(r,&n);printf(”%d\n”,*r);}26.有以下程序段,运行后的输出结果是【26】main(){int n[2],i,j;for(i=0;i<2;i++)n[i]=0;for(i=0;i<2;i++)for(j=0;j<2;j++)n[j]=n「i」+1;printf(”%d\n”,n[1]);}27. 有以下程序段,运行后的输出结果是【27】main(){int i, s=0; int aa[4][4]={{1,2,3,4},{5,6,7,8}, {3,9,10,2},{4,2,9,6}};for (i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s); }28.以下程序段的输出结果是【28】main (){ int a,b,d=241; a=d/100%9;b=(-1)&&(+1); printf("%d,%d,a,d"); } 29. 有以下程序段,运行后的输出结果是【29】int f(intn){ if(n==1) return1;else returnf(n-1)+1; }main(){ inti,j=0;for(i=1;i<5;i++) j+=f(i);printf("%d\n",j);}30. 有以下程序段,运行后的输出结果是【30】int b=2;int func(int*a){ b+=*a; return(b); }main(){ int a=2,res=2;res+=func(&a); printf("%d\n",res);}31. 有以下程序段:main(){ static char s1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序段运行后的输出结果是【31】32. 有以下程序段,运行后的输出结果是【32】ss(char *s){char *p=s; while(*p)p++; return(p-s);}main(){ char*a="abded"; inti; i=ss(a);printf("%d\n",i);}33. 有以下程序段,运行后的输出结果是【33】int sub(){ static int n=1; int x=1;x*=n;n++; return x; }main(){ int n,t=1;for(n=1;n<6;n++) t*=sub();printf("%d\n",t); }34.以下程序段的输出结果是【34】main(){ charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss)); } 35. 有以下程序段,运行后的输出结果是【35】main(){struct stru{ int a,b; char c[6];};printf("%d\n",sizeof(stru)); }36.有以下程序段,运行后的输出结果是【36】main(){ char *p1,*p2,str[50]="xyz";p1="abcd"; p2="ABCD";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str); }40. 有以下程序段,运行后的输出结果是【40】main(){ int i=0,a=0;while(i<20){ for(;;) { if((i )==0)break;else i--; }i+=11;a+=i; }printf("%d\n",a);}。