四川大学2012年C语言上机考试复习题~EF1E1
2012c语言题库附答案(可编辑)

2012年C语言机房最新考试题库所属语言:C语言试卷方案:TC_1204092119试卷总分:100分共有题型:3种一、程序填空共2题(共计30分)第1题(15.0分)题号:70/*【程序填空】功能:约瑟夫环问题求解。
即有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#include#define n 50int mainint i,k,m,n,num[n],*p;printf "please input the total of numbers %d :", n ; scanf "%d",&n ;p num;/***********SPACE***********/for i 0;【?】;i++/***********SPACE***********/ * p+i 【?】;i 0;k 0;m 0;while m n-1/***********SPACE***********/ if 【?】! 0 k++;if k 3* p+i 0;k 0;m++;i++;if i n i 0;/***********SPACE***********/ while 【?】 p++;printf "%d is left\n",*p ;return 0;答案:答案1i i答案2i+11+i答案3* p+i * i+p答案4*p 00 *p第2题(15.0分)题号:34/*【程序填空】功能:输入某年某月某日,判断这一天是这一年的第几天?#includeint mainint day,month,year,sum,leap;printf "\nplease input year,month,day\n" ;scanf "%d,%d,%d",&year,&month,&day ;switch month /*从月份得出已过多少天*/case 1:sum 0;break;case 2:sum 31;break;case 3:sum 59;break;/***********SPACE***********/ case 4:【?】;break;case 5:sum 120;break;case 6:sum 151;break;case 7:sum 181;break;case 8:sum 212;break;case 9:sum 243;break;case 10:sum 273;break;case 11:sum 304;break;case 12:sum 334;break;default:printf "data error" ;break;/***********SPACE***********/【?】;/*再加上日期数*//***********SPACE***********/if year%400 0|| year%4 0【?】 /*判断是否闰年*/ leap 1;elseleap 0;/***********SPACE***********/if leap 1【?】sum++;printf "it is the %dth day.",sum ;return 0;答案:答案1sum 90答案2sum sum+day或sum day+sum或sum+ day答案3&&year%100! 0&&0! year%100或&& year%100! 0答案4&&month 2&&2 month二、程序改错共2题(共计30分)第1题(15.0分)题号:254/*【程序改错】功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。
2012年9月计算机二级C语言上机题库及答案(破译版)

计算机二级c语言上机题库内部资料,切勿外传!.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){p rintf("10!=%ld\n", fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2 and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。
2012年3月C语言上机真题及答案

2012年3月C语言上机真题说明:本题库是根据教育部考试中心制定修改计划进行修改后的计算机等级考试二级C 语言机试题库。
对于题库的解答来自考试中心的答题系统。
※※※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数fun的功能是:将形参n 所指变量中,个位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }fun(&n); printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
(2021年整理)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1]
![(2021年整理)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1]](https://img.taocdn.com/s3/m/adcb731f4028915f814dc2ca.png)
[1]编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1])的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1]的全部内容。
-分类总结[1]编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完整版)2012全国计算机等级考试—二级C语言-上机考试-填空题—分类总结[1]这篇文档能够给您的工作和学习带来便利。
同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)2012全国计算机等级考试—二级C语言—上机考试—填空题—分类总结[1]> 这篇文档的全部内容。
—分类总结填空题的分类(分为7类):一、数学题目6、13、25、29、36、37、38、44、46解题方法:1。
如果在函数中定义变量,但是没有定义成静态存储变量,即变量前面没有static,应给变量赋初值,如果以后用到的是加减运算,则赋初值为0或者是0。
0;如果以后用到的是乘除运算,则赋初值为1或者是1。
0;2.循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m 项或者是第n 项,如果到了第m 或者第n 项,则在循环中的第二个表达式中用到的是i<=m或者是i〈=n;3.循环条件中如果用的是while 语句,则循环变量的初值应该在while 的外面定义和赋初值,在循环语句中必须给变量自加或者是自减。
四川大学C语言上机考试题

1.有以下程序#include <stdio.h>void main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是___D___。
A.2B.编译时有错,无结果C.4D.32.设x为int型变量,则执行以下语句后,x的值为:int x = 10;x*=x/=-x;printf("%d\n", --x); --D---A.10B.1C.-10D.03.下面程序的输出是_C___。
main(){ int x,i;for(i=1;i<=100;i++){ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d ",x);}}A.39 81B.42 84C.28 70D.26 684.在C语言中,合法的字符常量是---B----A."a"B.'\t'C.97D.a5.已知int x=12,y=3;执行下述程序后,变量x的值是_D___。
do{ x/=y--;}while(x>y);printf("%d\n",x);}A.2B.1C.3D.程序运行有错误6.有以下程序#include <stdio.h>void main(){ int m=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序运行后的输出结果是__C____。
A.3B.5C.-2D.-17.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是______。
2012年全国计算机等级C语言考试经典例题及题库

1、对象有如下一些基本特点,即标识惟一性、分类性、多态性、封装性和模块独立性。
2、SQL语句中凡创建都用CREA TE,删除都用DROP,改用ALTER,再跟类型和名字,附加子名。
3、关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。
4、循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即p->next=head。
5、程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。
6、数据模型所描述的内容3有个部分,它们是数据结构、数据操作和数据约束。
7、C语言的转义字符见下表所示。
转义字符转义字符的意义\n 回车换行\t 横向跳到下一制表位置\v 竖向跳格\b 退格\r 回车\f 换页\\反斜线符“\”\’单引号符\a 鸣铃\ddd 1~3位八进制数所代表的字符\xhh 1~2位十六进制数所代表的字符8、分析:本题考查switch语句的掌握。
必须掌握以下内容:首先应该明白switch语句的语法格式:switch语句的语法格式为:switch(表达式){case常量表达式1:语句组1;case常量表达式2:语句组2;…case常量表达式n:语句组n;default:语句组n+1;}另外,注意以下几点关于switch语句的重点:①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case ′B′:);③找到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入default:程序段,作统一的处理。
default标号是可选性的,不必每次都有,视需要而定。
switch语句中还可以包含switch语句,形成switch的嵌套9、在C语言中,逻辑运算符中一共有4个,它们分别是!(逻辑非)、||(逻辑或)、&&(逻辑与)、^(异或)。
四川大学网络教育《C 语言程序设计》复习资料期末考试复习题及参考答案

《C语言程序设计》复习资料一.单项选择题1.下面哪一个是合法的用户自定义标示符( D )(A) b-b (B) float (C) <fr> (D) _isw2.a、b为两个bool型变量,如下哪一个表达式能够表达“a、b同时为真或同时为假”的含义?(C )(A)a&&b||a (B)(a&&b)||!b (C)(a&&b)||(!a&&!b) (D)(a||b)&&(!a||!b)3.对于表达式(x>0)?x=x-1:x=x+1,若当前x取值为-2,该表达式的运算结果为( A )(A) -1 (B) 0 (C) 1 (D) 24.不是C语言基本数据类型的是( D )(A) 指针类型 (B) 整型 (C) 字符型 (D) 实型5.以下for循环控制中,循环次数为10次的是( C )(A)for(int i=1;i<10;i++) (B)for(int i=0;i<=10;i++)(C)for(int i=0;i<20;i+2) (D)for(int i=0;i<=20;i+2)6.设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( B )(A) 1 (B) 0 (C) 3 (D) 47.设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( C )(A) 18 (B) -3 (C) 9 (D) 128.对于变量定义char* p_name[]={“Kate”,“John”,“Mike”},如下哪一种表达式能表示“Mike”中的‘k’字符?( B )(A)p_name[0][2] (B)p_name[2][2](C)*(p_name[2]+3) (D)*(p_name[1]+2)9.表达式(int)7.5/(float)2的取值为( A )(A)3.75 (B)3.5 (C)3 (D)410.有定义语句:float a[4];则分配给数组a的内存空间为( C )字节(A) 20 (B) 12 (C) 16 (D) 1011.表达式6>8 | | 3>=9的取值为( A )(A)0 (B)1 (C)2 (D)312. 表达式18/4*sqrt(4.0)/8值的数据类型为(C )(A) int(B)float(C)double(D)不确定13.表达式18/4*sqrt(4.0)/8值的数据类型为( D )(A)int B float C.double D.不确定14.在以下定义中对标识符ptr描述正确的是( C )int(*ptr)[3];(A)定义不合法 (B)是一个指针数组名,每个元索是一个指向整型变量的指针(C)是一个指针,它指向一个具有3个元素的一维数组(D)是一个指向整型变量的指针15.已知有语句 scanf (“%d%d”,&a,&b);要使整型变量 a = 6, b = 8,运行时,屏幕上应输入( D )(A)a=6,b=8 (B)a=6 b=8 (C)6 8 (D)6 , 816.若char a=3,b=6,c; c=a^(b>>2);则c的二进制形式为(A )(A) 00000010 (b)00000100 (C)00000001 (D)0000001117.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是( D )(A)p=q (B)*p=*q (C)n=*q (D)p=n18.已知int a[3][4];则对数组元素引用正确的是( C )(A) a[2][4] (B) a[1,3] (C) a[2][0] (D) a(2)(1)19.已知定义int a[]={10, 60, 30};写出语句a[0]+ = a[1] - = a[2];运行后数组各元素的值为( B )(A)a[0] =70 , a[1] = 30,a[2] = 30。
2012年国家二级C语言考试所有上机真题答案

11、下列给定程序中,函数fun的功能是:计算如下公式直到,并且把计算结果作为函数值返回。
例如,若形参e的值为1e-3,则函数返回值为0.551690。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!【参考答案】(1)3.0或(double)3(2)>(3) (t+1)2、下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。
和值通过函数值返回。
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使其得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!【参考答案】(1)double fun(int n)(2)s=s+(double)a/b;3、请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}21、下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。
例如,当形参n的值为10时,函数返回值为9.612558。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!【参考答案】(1) 0(2) n(3) (t*t)2、下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有以下程序#include <stdio.h>void main(){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01↙,程序执行后的输出结果是___anothernumbernumber下面程序的输出是_x=4 ___。
#include<stdio.h>main(){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<-3;j++){ if(j%3)continue;x++;}x++;}设x为int型变量,则执行以下语句后,x的值为:0int x = 10;x*=x/=-x;printf("%d\n", --x);若有代数式(其中e代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是sqrt(fabs(pow(n,x)+exp(x)))有如下程序#include <stdio.h>void main(){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______。
a=2,b=1若有int a=2,b=5,则a / b 的结果为:0在C语言中,合法的基本数据类型关键字是______。
long下面四个选项中,合法的用户自定义标识符是:()a_b3有以下程序#include <stdio.h>void main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是______。
011122已知字母A的ASCII码为十六进制数41,则下面程序段的运行结果为:(67 C )char c='A';c=c+'F'-'D';printf("%d %c\n",c,c);若变量已正确定义,有以下程序段int i=0;do printf("%d,",i); while(i++);printf("%d\n",i);其输出结果是0,1#include <stdio.h>{int a=0, b=0;a=10; /*给a赋值*/b=20; /*给b赋值*/printf("a+b=%d\n",a+b); /*输出计算结果*/}程序运行后的输出结果是a+b=30对于一个正常运行的C程序,以下叙述中正确的是程序的执行总是从main函数开始,在main函数结束有以下程序#include <stdio.h>{ int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是1若x和y都是int型变量,x=100、y=200,且有下面的程序片段printf("%d",(x,y) );上面程序片段的输出结果是___200___。
下列条件语句中,功能与其他语句不同的是______。
if(a==0) printf("%d\n",x); else printf("%d\n",y);以下叙述中正确的是______。
C程序中注释部分可以出现在程序中任意合适的地方有以下程序#include <stdio.h>void main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66↙。
则输出结果是______。
6,5,A,B以下合法的字符型常量是'\x13'以下程序执行后sum的值是_不确定_____。
#include <stdio.h>void main(){ int i, sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}有如下程序#include <stdio.h>void main(){int n = 9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是__876____。
若执行下面的程序时从键盘上输入3和4,#include <stdio.h>void main(){ int a,b,s;scanf("%d %d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}则输出是___16___。
设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
6.000000设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是______。
x=(int)(x*100+0.5)/100.0;以下4组用户定义标识符中,全部合法的一组是__①____。
①②③④_main If txt intenclude -max REAL k_2sin turbo 3COM _001在C语言的双目运算中要求运算数必须是整型的运算符是( )。
%以下叙述正确的是______。
C语言以接近英语国家的自然语言和数学语言作为语言的表达形式假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是______。
1有以下程序#include <stdio.h>void main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是______3。
以下程序段的输出结果是。
main(){int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);}a=10 b=30 c=10以下关于long、int和short类型数据占用内存大小的叙述中正确的是由C语言编译系统决定若要求表示“a不等于0”的关系,则能正确表示这一关系的表达式为a!=0有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是______。
if (a<3) x=3;if (a<2) x=2;if (a<1) x=1;若有char c;则正确的赋值表达式是c='\101'下列叙述中正确的是在switch语句中,不一定使用break语句以下程序的输出结果是___31___。
#include <stdio.h>void main(){int a=0,i;for(i=1;i<5;i++){ switch(i){case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}}设a=5、b=6、c=7、d=8、m=2、n=2,执行(m=a>b)&&(n=c>d)后n的值为__2____。
把C语言的源程序变为目标程序要经过( 编译)下面程序的功能是输出以下形式的金字塔图案:****************#include <stdio.h>void main(){ int i,j;for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)printf(" ");for(j=1;j<=______;j++)printf("*");printf("\n");}在下划线处应填入的是______。
2*i-1有以下程序#include <stdio.h>void main(){ int k=4,n=0;for( ; n<k ; ){ n++;if(n%3!=0) continue;k--; }printf("%d,%d\n",k,n);}程序运行后的输出结果是__3,3____。
下面程序#include <stdio.h>void main(){ int x=100, a=10, b=20, ok1=5, ok2=0;if(a<b)if(b!=15)if(!ok1) x=1;else if(ok2) x=10;x=-1;printf("%d\n",x);}的输出是__-1 ____。
设变量a是整型,f是单精度型,i是双精度型,则表达式20+'a'+i*f值的数据类型是(double )有如下程序段int a=14,b=15,x;char c='A';x=(a && b) && (c<'B');执行该程序段后,x的值为___1___。
以下4个选项,不能看作一条语句的是______。
if(b==0)m=1;n=2;下列叙述中错误的是一个C语言程序只能实现一种算法已知int x=12,y=3;执行下述程序后,变量x的值是_程序运行有错误___。