五、编程题 (共15分) 1、int ff(char *str, char ch) /* 说明1 分 */ { int count=0; while(*str){ /* 循环3分条件、查找、str递增各1 分 */ if(*str==ch) count++; str++; } return count; /* 返回 1 分 */ } 2、#include /*头文件、变量说明、打开关闭文件、输入ch 共 2 分 */ #include void main() { char ch,c,s[80]; int k; FILE *fp; if((fp=fopen("input.txt","r"))==NULL) { printf("error\n"); exit(0); } ch=getchar(); k=0; while(1){ /*循环+beaak 1 分*/ c=fgetc(fp); /* 读入 1 分*/ if(c=='\n'||c==EOF){ /* 共 6 分 */ s[k]='\0'; k=0; printf("%d\n",ff(s,ch)); if(c==EOF) break; } else s[k++]=c; } fclose(fp); } 或 k=0; while(!feof(fp)){ /* 循环判断 1 分 */ c=fgetc(fp); /* 读入 1 分 */ if(c!='\n') /* 共5分 */ s[k++]=c; else{ s[k]='\0'; k=0; printf("%d\n",f(s,ch)); } } if(c!='\n'){ /* 处理最后1行 1 分*/ s[k]='\0'; printf("%d\n", ff(s,ch)); }
浙江计算机二级考试(C语言)上机试题
二级考试(C语言)上机试题1.三个数比较大小。 #include void swap(______1______) //int *pa,int *pb { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(______2______) //a>b swap(&a,&b); printf("%d,%d,%d",a,b,c); } 2.表达式求和。 #include #include void main() { FILE *fp; float n=1,t=1,pi=0; int i; // 从以下开始答题 i=1; while(fabs(t)>=1e-6) { pi=pi+t; i=-i; n=n+2; t=i/n; } fp=fopen("Design1.dat","w"); fprintf(fp,"%.6f",4*pi); fclose(fp); } 运行结果:3.141594 3.字母后移循环输出。
#include void main() { char c; c=getchar(); if(______1______) // c>='a' && c<'v' c=c+5; else if (c>='v' && c<='z') ______2______ // c=c-21; putchar(c); } 4.求满足条件的数。 #include #include void main() { float y=1.05; int n=1; FILE *p; // 以下开始做答 while(!(pow(y,n)<1e6 && pow(y,n+1)>1e6)) n++; p=fopen("Design2.dat","w"); fprintf(p,"%d,%.0f",n,pow(1.05,n)); fclose(p); } 运行结果:283,992137 5.求满足条件的数。 #include void main() { int m=0,t=1,n; while( _____ 1 ________); // (scanf("%d",&n),n<=0) while(!(t<=n&&t*2>=n)){ _____ 2 _____ // t=t*2; m++; } printf("%d\n",m); } 6.求平面点间的最短距离。
浙江大学C语言总复习题—基本数据类型和运算
第2章基本数据类型和运算 学习和解题要点 1.数据类型 C 语言中的数据类型比别的语言丰富。要学好这部分内容,首先要掌握C 语言的数据在内存中的表示。 整型数据:以二进制的形式表示 (1) int 类型 正数:如 123 (+123)用 16 位二进制(二个字节)表示 原码 最大正整数 215-1=214+213 +23+22+21+20=32767 负数:如–123 原码 反码(符号位不动,其它取反) 补码(补码加 已知补码求原负数符号位不动,其它取反加 1 加 最大负整数 -215=32768 因为 -215 < -(215-1) 所以用 -215而不用 -(215-1) (2) unsigned (int) 类型 称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16 位二进制都用来表示数,因此 最大数 215+214 +213+2 3+22+21+20=65535 最小数 0 (3) long (int) 类型 用 32 位二进制(四个字节)表示,其他同 int 型 (4) short 类型 有的计算机(小型、中型、大型机)int 即是 long ,而short用16 位二进制(二个字节)表示。因此C语言中,short一定是短整型,long一定是长整型,而int因不同的系统而不同。PC 586 机int即short,所以一般不用short 。 (5) 在C语言中,整型常量有三种形式的写法: 十进制整数(0 - 9)表示。通常整数的写法。 八进制整数(0 - 7)表示。在整数的前面加数字0。 十六进制整数(0 - f)表示。在整数的前面加0x。 长整型常量表示方法:在整数的后面加L或 l。
浙江省计算机二级C语言历年试卷
浙江省计算机二级C语言历年试卷
一、程序填空 (1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1 b=i_x0010_0/10;
a*a*a+b*b*b+c*c*c = = i (2)输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。 n!=0 n=n/10 (3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。if (n<0) n=-n; s+=n_x0010_; (4)调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。 return -y ; m=m/10 ; (5)调用函数f,从字符串中删除所有的数字字符。 strcpy else
(6)调用find函数在输入的字符串中查找是否出现the这个单词。如果查到返回出现的次数,如果未找到返回0。 j=0; j<3; j++ j>=3
(7)输入的一个小写字母,将字母循环后移5个位置后输出。例如:a变成f,w 变成b。 c>='a'&&c<='u' c=(c-'a'+5)&+'a'; (8)将字符串s中所有的字符'c'删除。s[i] != '\0' j++; (9)对x=1,2,……,10,求 f(x)=x*x-5*x+sin(x)的最大值。max=f(1); if (f(x)>max) max=f(x); (10)输入三个整数,按由小到大的顺序输出这三个数。 int *pa, int *pb if ( a>b ) (11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6
浙江省高校计算机等级考试大纲(二级 C语言程序设计大纲
二级C程序设计考试大纲 基本要求 1.掌握C语言的基本知识,包括C语言的功能和语法;2.基本具备C语言程序设计能力,能熟练地阅读、理解和编写简短的C程序; 3.掌握一种C语言的编译和编程环境,能熟练地调试程序;4.熟练掌握结构化程序设计的方法; 5.掌握程序设计中常用的基本算法。 考试范围 一、数据的定义 1.基本类型(整型,实型,字符型) (1)常量 各种表示形式的整数、实数和字符(串)常量,符号常量 的定义和使用,包括整数的十进制、八进制和十六进制 的表示形式、长整型常量的表示形式,实数的浮点表示 法和科学记数法,字符的转义序列,常用符号常量的含 义(如NULL、EOF等); (2)变量 变量的定义和初始化。
2.构造类型 (1)数组 一维和二维数组的定义和初始化,数组元素的引用,包括一维字符数组和字符串,二维字符数组和字符串数组。 (2)结构 结构类型的定义,结构变量的定义和初始化,结构变量成员的引用。 3.指针 (1)指针和地址的概念; (2)指针变量的定义和初始化; (3)通过指针引用指向实体。 4.构造类型和指针类型的混合定义及应用 (1)指针、数组和地址间的关系; (2)指针数组; (3)结构数组; (4)结构指针; (5)结构中含指针或数组; (6)指向指针的指针(即二级指针)。 5.空类型的定义和使用 6.变量的存储类别、作用域和生存期 (1)变量的存储类别,包括auto自动型、static静
态型、extern外部参照型; (2)全局变量和局部变量,包括自动局部变量和静态局 部变量、全局变量和静态全局变量、外部变量。 二、运算及流程控制 1.基本运算 运算符的功能,运算符的优先级、结合性和目数,隐式类型转换和强制类型转换。 2.表达式 各类表达式的组成规则和计算过程。 3.语句 (1)表达式语句、空语句、复合语句; (2)简单控制语句(break、continue、return); (3)选择控制语句(if、switch); (4)重复控制语句(for、while、do—while)。 三、程序结构和函数 1.程序结构 main函数与其他函数之间的关系,包括标准库函数和自定义函数。 2.函数的定义 (1)函数定义的ANSI C格式;
浙江大学C程题库(更新)
c语言程序设计题目及答案 20021程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 int main(void) { int repeat, ri; double x, y; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x);
/*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void) { int celsius, fahr; /*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9;
2008--2010浙江省二级C语言考试真题__史杨杨
2008年春浙江省高校 计算机等级考试试卷(二级C) 试题1(每小题3分,共12分) 【程序说明】 输入一个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,……,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。 运行示例: Enter n:10 1 1 2 3 5 8 13 21 34 55 #include main() {int count,i,n,x1,x2,x; printf("Enter n:"); scanf("%d",&n); x1=x2=1; printf("%6d%6d",x1,x2); (1); for(i=1;i<=n-2;i++) { (2); printf("%6d",x); count++; if( (3))printf("\n"); x1=x2; (4); } } 【供选择的答案】 (1)A、count=2 B、count=0 C、count=1 D、count=-1 答案:A (2) A、x=x1-x2 B、x=x1+x2 C、x=x1 D、x=2 答案:B (3) A、count/6==0 B、count%6!=0 C、count%6==0 D、count/6!=0 答案:C (4) A、x=x1+x2 B、x2=x1 C、x=x2 D、x2=x 答案:D 试题2(每小题3分,共12分) 【程序说明】 输入2个正数m和n(1<=m浙江省计算机二级C语言历年试卷
浙江省计算机二级C语言历年试卷. 一、程序填空 (1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1
b=i_x0010_0/10; a*a*a+b*b*b+c*c*c = = i (2)输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。 n!=0
n=n/10 (3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 if (n<0) n=-n; s+=n_x0010_; (4)调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。return -y ; m=m/10 ; (5)调用函数f,从字符串中删除所有的数字字符。 strcpy else (6)调用find函数在输入的字符串中查找是否出现瑜敨这个单词。如果查到返回出现的次数,如果未找到返回0。
j=0; j<3; j++ j>=3 (7)输入的一个小写字母,将字母循环后移5个位置后输出。例如:慜变成晜,睜变成扜。 c>='a'&&c<='u'
c=(c-'a'+5)&+'a'; (8)将字符串s中所有的字符'c'删除。 s[i] != '\0' j++; (9)对x=1,2,……,10,求 f(x)=x*x-5*x+sin(x)的最大值。 max=f(1); if (f(x)>max) max=f(x); (10)输入三个整数,按由小到大的顺序输出这三个数。 int *pa, int *pb if ( a>b ) (11)调用函数f,去除数组中的负数,输入数6 4 3 1 ,输出结果为:x[7]组. *m = *m-1; f (x, &n) ; (12)调用函数f计算代数多项式
浙江省计算机二级C语言上机题库
第二部份C程序设计上机操作题 (2) 一、数列求和 (2) 二、最大公约数、最小公倍数 (7) 三、排序算法 (7) 四、数组 (9) 五、求整数n的各位数字及各数字之和 (12) 六、平面上各点之间的距离 (14) 七、数制转换 (17) 八、字符串处理 (19) 九、最大值与最小值 (25) 十、斐波那契(Fibonacci)数列 (28) 十一、水仙花、完数、回文数与亲密数 (29) 十二、方程求根 (31) 十三、回文数、因子、质因子、素数 (34) 十三、其他算法 (35)
第二部份C程序设计上机操作题 一、数列求和 1、程序调试题 试题一 该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。 #include #include void main() { float x,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps); do { /***** 1 *****/ t=-t*x/++i; //++i--→i++ s+=t; /***** 2 *****/ } while(fabs(t)= printf("%f\n",s); } 试题二 该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include void main() { int i,a,n; long t=0; /********* 1 *******/ s=0; //s=0--→long s=0 scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { /******* 2 ******/ t=t*10+i; //i-→1 s=s+t; } s=s*a; printf("%ld\n",s); } 2、程序填空题 试题一 程序功能:调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。
浙江省计算机二级C语言历年试卷
一、程序填空 (1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1 b=i%100/10; a*a*a+b*b*b+c*c*c = = i (2)输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。 n!=0 n=n/10 (3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 if (n<0) n=-n; s+=n%10; (4)调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。 return -y ; m=m/10 ; (5)调用函数f,从字符串中删除所有的数字字符。 strcpy else (6)调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数,如果未找到返回0。 j=0; j<3; j++ j>=3
(7)输入的一个小写字母,将字母循环后移5个位置后输出。例如:"a"变成"f","w"变成"b"。 c>='a'&&c<='u' c=(c-'a'+5)%26+'a'; (8)将字符串s中所有的字符'c'删除。 s[i] != '\0' j++; (9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。 max=f(1); if (f(x)>max) max=f(x); (10)输入三个整数,按由小到大的顺序输出这三个数。 int *pa, int *pb if ( a>b ) (11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6 *m = *m-1; f (x, &n) ; (12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。 float x, float *a, int n return y; (13)分别统计字符串中英文字母、数字、和其他字符出现的次数。
全国计算机等级考试二级C语言程序设计
全国计算机等级考试二级C语言程序设计 一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列选项中不符合良好程序设计风格的是 A)源程序要文档化B)数据说明的次序要规范化 C)避免滥用goto语句 D)模块设计要保证高耦合、高内聚 (2)从工程管理角度,软件设计一般分为两步完成,它们是 A)概要设计与详细设计B)数据设计与接口设计 C)软件结构设计与数据设计D)过程设计与数据设计 (3)下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试B)概要设计C)软件维护D)详细设计 (4)在数据库系统中,用户所见的数据模式为 A)概念模式B)外模式C)内模式D)物理模式 (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 A)编码设计B)测试阶段C)运行阶段D)物理设计 (6)设有如下三个关系表 下列操作中正确的是
A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S (7)下列叙述中正确的是 A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7 (9)数据库技术的根本目标是要解决数据的 A)存储问题B)共享问题C)安全问题D)保护问题 (10)对下列二叉树 进行中序遍历的结果是 A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG (11)下列叙述中错误的是 A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成 D)一个C函数可以单独作为一个C程序文件存在 (12)下列叙述中正确的是 A)每个C程序文件中都必须要有一个main()函数 B)在C程序中main()函数的位置是固定的 C)C程序中所有函数之间都可以相互调用,与函数所在位置无关
浙江大学c程2005A试卷E(竺院)
浙江大学2005-2006学年冬季学期 《C Programming》课程期末考试试卷 开课学院:计算机学院, 考试形式:闭卷 考试时间:2006年1月11日, 所需时间:120 分钟,任课教师 考生姓名:学号:专业: (注意:答题内容必须写在答题卷上,写在本试题卷上无效) Section 1: Single Choice(2 mark for each item, total 20 marks) 1. If x is a float variable, the value of expression (x = 7/2, x+1) is _____. A.3 B.3.5 C.4 D.4.5 2.The value of expression sizeof (“\\total=%lf\\\n”) is______. A.13 B.14 C.15 D.16 3. The statement ______ is correct if a is an integer variable and b is a double Precision float variable. A.scanf(“%d,%f”, &a, &b);B.scanf(“a=%d b=%*f”, &a, &b); C.scanf(“%d%*lf”, &a, &b);D.scanf(“%d%*lf”, &a ); 4.The value of expression strcmp (“internet”, “intranet”) is______. A.positive B.negative C.zero D.uncertain 5. The expression! (x>0&&y<0) is equivalent to _____. A.x<=0||y>=0 B.!x>0&&!y<0 C.!x>0||!y<0 D.!(x>0)&&!(y<0) 6. If variables are defined, the value of expression_____ is not 1. A.2^3 B.1<<1/2 C.(a=1,b=2,a>b) D.!’\0’ 7. If variables are defined and assigned correctly, the expression_____ is wrong. A.float(256) B.a>b>5 C.a,2,b D.5&&6 8. The following code fragment prints out _____. int i=5; while (i-->1){ if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); A.*#*#*#$ B.#*#*#*$ C.#*#*$ D.*#*#$ 9. With regard to the following definition: struct { int len; 《C Programming》TEST PAPER, Jan 11, 2006 1 / 8
浙江省计算机二级c语言上机考试真题(三)程序编写
(三)程序编写 1,求3元方程解 设计程序:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式"%d"输出。说明:若a、b、c是1个解,则a、c、b也是1个解,等等。*/ #include "stdio.h" int main() { int x,y,z,k=0; /* * 考生在这里添加代码 */ return 0; } ?#include ?int main() ?{ ?int x,y,z,k=0; ?for(x=0;x<=50;x++) ? { ? for(y=0;y<=50;y++) ? { ? for(z=0;z<=50;z++) ? { ? if(x*x+y*y+z*z==2000) ? {k++;} ? } ? } ? } ?printf("%d",k); ?} 2,求距离和 设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离 的总和,并将结果以格式"%.6f"输出。
#include #include "math.h" int main() { int i; float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6}; float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4}; float s=0.0; /* * 考生在这里添加代码 */ return 0; } ?#include ?#include ?int main() ?{ int i; ? float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6}; ? float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4}; ? float s=0.000004; ? float sx,sy; ? for(i=0;i<10;i++) ? { ? sx=(x[i]-1.0)*(x[i]-1.0); ? sy=(y[i]-1.0)*(y[i]-1.0); ? s+=sqrt(sx+sy); ? } ? printf("%.6f",s); ? return 0; ?} 3,字符权重 设计程序:在正整数中找出1个最小的、被3、5、7、9除余数分别为1、 3、5、7的数,将该数以格式"%d"输出。 #include "stdio.h" #include "math.h" int main()
浙江大学C语言程序设计理论考试模拟精彩试题问题详解
浙江大学C语言理论考试模拟试题答案 一、判断题 共10题,每题1分,共10分。正确的请选择A,错误的请选择B。 1、在C语言中,函数不可以嵌套定义,但函数可以嵌套调用。A A、正确 B、错误 解答:A 2、在程序中 else 子句可以单独使用。 B A、正确 B、错误 解答:B 3、 C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( ) A A、正确 B、错误 解答:A 4、 _ya是不合法的C语言标识符。B A、正确 B、错误 解答:B 5、在数组初始化时,如果初值个数多于数组长度,将出现错误。 A A、正确 B、错误 解答:A 6、 C语言规定,函数返回值的类型是由return语句中的表达式类型所决定。 B A、正确 B、错误 解答:B 7、若有定义 int *p, 则表达式 p++ 的值就是 p 所指向的变量的地址值加1。 B A、正确 B、错误 解答:B 8、 '\n'不是一个字符常量。B A、正确 B、错误 解答:B 9、表达式 (z=0, (x=2)||(z=1),z) 的值是1。B A、正确 B、错误 解答:B 10、若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。 A、正确 B、错误
二、单选题 请从给定的选项中选择一个唯一正确的选项。每小题2分,共10题,20分。 1、C下面有关变量的命名,不合法的是:( ) A. _int B. __intint C. __int&int D. ___intintint C 解答:C 2、有变量定义int a;float c;下面输入语句有语法错误的是( )。 A. scanf("%d,%f", &a, &c); B. scanf("x=%d, c=%f", &a, &c); C. scanf("%d%f", &a, &c); D. scanf("%f %d",&a, &c); D 解答:D 3、下面关于函数参数使用的说法,不正确的是:() A. 函数调用时实参按顺序传递到形参; B. 函数调用时实参把值传递给形参; C. 函数的实参和形参个数可以不一致,但使用时应尽量一致; D. 函数的实参和形参可以同名; C 解答:C 4、已知 int k=1; for(k=1;1;k++) if(k) break; for语句的循环次数是( )。 A. 0 B. 1 C. 2 D. 无限次 B 解答:B 5、下面定义的max函数返回值的数据类型是() max(float a,float b) { return(a>b?a :b) ; } A. int B. float