阅读程序写结果(函数)
- 格式: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语言是结构化、________的程序设计语言。
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);}。