浙江省计算机2级c语言程序调试题
- 格式:doc
- 大小:80.50 KB
- 文档页数:18
C 程序设计题 1一、要求说明:1. 在考生文件夹的Paper/CD1 子文件夹中,已有CD1.c 文件2. 该程序中标有部分为考试需要程序设计部分的标志。
考生需根据程序的功能设计编写程序,并调试运行程序;3. 单击“回答”按钮后进行程序设计;二、注意事项:1. 在设计时,不得删除设计部分标志;2. 不得对设计部分标志以外的程序内容进行加行、减行、加句、减句。
三、程序功能:1#include <stdio.h>#include <math.h>void main(){ FILE *fp; double a=1.05; long n=1;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf("%d %.4f\n",n,a);fp=fopen("CD1.dat","wb");fwrite(&a,8,1,fp);fclose(fp);}2用for循环找出所有两个数乘积等于20的数据对。
[提示:判断20能否被i整除的条件可以写作“20.0/i==(int)(20/i)”]。
#include <stdio.h>void main(){ FILE *fp; long i,n=0,x[10][2];/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/for(i=0;i<n;i++)printf("%ld %ld\n",x[i][0],x[i][1]);fp=fopen("CD1.dat","wb");fwrite(&x,4,2*n,fp);fclose(fp);}3计算并显示表达式 1 + 2! + 3! + ... + 12! 的值。
浙江C语言二级考试答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个整型变量?A. intB. floatC. doubleD. char答案:A3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. !=答案:A4. C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A5. 下列哪个选项是C语言中的循环结构?A. ifB. switchC. whileD. for答案:C6. 在C语言中,哪个函数用于输出格式化的字符串?A. printf()B. scanf()C. fgets()D. fputs()答案:A7. C语言中,哪个关键字用于定义一个函数?A. intB. voidC. functionD. return答案:B8. 下列哪个选项是C语言中的数组声明方式?A. int array[10];B. int 10array;C. int array=10;D. int array(10);答案:A9. C语言中,哪个关键字用于跳过当前循环的剩余部分,直接开始下一次循环?A. breakB. continueC. returnD. exit答案:B10. 下列哪个选项是C语言中的正确注释方式?A. /* This is a comment */B. // This is a commentC. # This is a commentD. ' This is a comment答案:A二、填空题(每空2分,共20分)1. 在C语言中,字符常量使用___________括起来。
答案:单引号2. C语言中的___________运算符用于计算两个整数的除法,并向下取整。
程序调试题+ 程序设计题(浙江省二级 C 语言上机考试题库)1. 在考生目录的Paper 子目录下,有Modify.c 文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出 n 的所有质数因子(如 n=13860,则输出 2、2、3、3、5、7、11)。
#include <stdio.h>void main(){int n,i; scanf("%d",&n);/****** 1 ******/i=1; i=2while(n>1)if(n%i==0) { printf("%d\t",i); n/=i; }else/******** 2 *******/n--; n++}2. 在考生目录的Paper 子目录下,有Modify.c 文件,该文件中"____ N ____" 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入的一个小写字母,将字母循环后移 5 个位置后输出,如‘a’变成‘ f ’,‘ w ’变成‘ b’。
#include <stdio.h>void main(){char c; c=getchar();if(___________) c=c+5;else if (c>='v' && c<='z') _________putchar(c);}3. 在考生目录的Paper 子目录下,有Modify.c 文件,该文件中"____ N ____" 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数 f 用以求 1 元 2 次方程x*x+5*x-2=0 的实根。
第二部份C程序设计上机操作题 (2)一、数列求和 (2)二、最大公约数、最小公倍数 (7)三、排序算法 (8)四、数组 (9)五、求整数n的各位数字及各数字之和 (12)六、平面上各点之间的距离 (14)七、数制转换 (17)八、字符串处理 (19)九、最大值与最小值 (26)十、斐波那契(Fibonacci)数列 (28)十一、水仙花、完数、回文数与亲密数 (30)十二、方程求根 (32)十三、回文数、因子、质因子、素数 (35)十三、其他算法 (36)第二部份 C程序设计上机操作题一、数列求和1、程序调试题试题一该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
#include <stdio.h>#include <math.h>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)<eps); // < -- >=printf("%f\n",s);}试题二该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333#include <stdio.h>void main(){ int i,a,n; long t=0;/********* 1 *******/s=0; //s=0--long s=0scanf("%d%d",&a,&n);for(i=1;i<=n;i++) {/******* 2 ******/t=t*10+i; //i-1s=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语言考试真题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. intB. floatC. returnD. void答案:D2. 若有定义 int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式的值不为5?A. a[4]B. a[5]C. a[0]D. *(a + 4)答案:B3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. %B. /C. *D. ^答案:C4. 下面哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D5. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A6. 若有定义 int x = 10;,则以下哪个表达式的值不为10?A. x++B. ++xC. x--D. --x答案:D7. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A8. 下面哪个选项不是C语言中的存储类别?A. autoB. staticC. registerD. volatile答案:D9. 在C语言中,以下哪个函数用于打开一个文件?A. fopen()B. fclose()C. fgetc()D. fprintf()答案:A10. 若有定义 int a[3][2] = {{1, 2}, {3, 4}, {5, 6}};,则以下哪个表达式的值不为4?A. a[1][1]B. a[2][0]C. a[0][1]D. a[1][0]答案:B二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是__65__。
2. 若有定义 int a = 10;,则表达式 a % 3 的值是__1__。
计算机二级c语言操作题没法点调试一、选择题1. 在C语言中,用于调试程序的关键字是______。
A. #includeB. intC. mainD. debug2. 当C语言程序无法正常调试时,可能的原因是______。
A. 编译器损坏B. 缺少必要的头文件C. 程序存在语法错误D. 所有选项都可能3. 在Visual Studio等集成开发环境(IDE)中,通常使用哪个快捷键来启动调试模式?A. Ctrl+CB. Ctrl+RC. F5D. F10二、填空题4. 在C语言的IDE中,如果遇到无法调试的问题,首先应该检查程序是否______。
5. 使用调试工具时,可以通过设置断点来暂停程序的执行,然后逐行检查程序的______。
三、简答题6. 描述在C语言程序中进行调试的一般步骤。
7. 解释为什么在C语言程序中,即使编译无误,程序也可能在运行时出现错误。
四、编程题8. 编写一个C语言程序,该程序可以计算两个数的和,并使用调试工具检查程序的正确性。
五、分析题9. 假设你的C语言程序在运行时崩溃,分析可能的原因,并提出相应的解决方案。
10. 描述在C语言程序中使用调试工具的好处,并举例说明如何使用调试工具来解决实际问题。
六、论述题11. 论述在C语言编程过程中,调试的重要性以及如何有效利用调试工具来提高代码质量。
12. 根据你的编程经验,讨论在C语言程序开发中常见的调试陷阱,并提出避免这些陷阱的策略。
七、实验题13. 设计一个实验,以验证C语言编译器的调试功能。
实验应包括实验目的、所需材料、实验步骤和预期结果。
八、案例分析题14. 给出一个C语言程序的调试案例,分析程序中的错误,并说明如何使用调试工具来定位和解决问题。
九、综合应用题15. 假设你正在开发一个C语言项目,项目中有一个关键功能无法正常工作。
请描述你将如何使用调试工具来诊断问题,并提出可能的解决方案。
请注意:本试题旨在考察学生对C语言调试工具的理解和应用能力,确保学生能够熟练使用调试工具来优化和改进自己的C语言程序。
浙江省计算机二级c语言笔试题库及答案一、选择题1. 下面哪个选项声明一个整型变量a?A. int a;B. int a = 10;C. a = 10;D. a;2. C语言中,以下哪个不是关键字?A. intB. floatC. ifD. then3. 下面哪个选项表示“不相等”?A. ==B. !=C. <=D. >4. 在C语言中,以下哪个选项是正确的注释格式?A. /*B. //C. #D. ∗−5. 下面哪个选项表示“与”?A. &&B. ||C. !D. ==二、填空题1. 声明一个字符型变量ch并赋值为字母A的ASCII码。
ch = 'A';2. 表示“输出变量a的值”的语句是________。
printf("%d", a);3. 下划线(_)开头的标识符属于______。
合法的变量名4. C语言的主函数是______。
int main()5. 表示“执行一次循环体”的语句是______。
do {...} while (条件);三、编程题题目1:编写一个程序,求出1到100之间所有能被3整除的正整数的和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {if (i % 3 == 0) {sum += i;}}printf("1到100之间所有能被3整除的正整数的和为:%d\n", sum);return 0;}```题目2:编写一个程序,计算并输出斐波那契数列的前20个数。
```c#include <stdio.h>int main() {int num1 = 1, num2 = 1, temp;int i;printf("斐波那契数列的前20个数为:\n");printf("%d %d ", num1, num2); // 输出前两个数for (i = 3; i <= 20; i++) {temp = num1 + num2;printf("%d ", temp);num1 = num2;num2 = temp;}return 0;}```题目3:编写一个程序,读入一个整数n,计算并输出1到n之间所有整数的和。
浙江省计算机二级c语言上机考试真题一、题目描述下面是浙江省计算机二级C语言上机考试的真题,请根据题目要求完成对应的代码。
1. 题目一编写程序,实现求100以内所有素数的功能。
2. 题目二编写程序,实现字符串逆序输出的功能。
3. 题目三编写程序,实现判断一个整数是否是回文数的功能。
二、题目一解析及代码题目描述:编写程序,实现求100以内所有素数的功能。
解析:素数是只能被1和自身整除的数,大于1的正整数。
通过循环检测每个数是否能被2到该数的平方根之间的数整除,来确定是否为素数。
代码:```c#include <stdio.h>int isPrime(int num) {if(num < 2)return 0;for(int i = 2; i <= sqrt(num); i++) { if(num % i == 0)return 0;}return 1;}int main() {printf("100以内的素数有:\n"); for(int i = 2; i < 100; i++) {if(isPrime(i))printf("%d ", i);}printf("\n");return 0;}```三、题目二解析及代码题目描述:编写程序,实现字符串逆序输出的功能。
解析:可以使用一个循环,从字符串的最后一个字符开始逐个输出,实现字符串逆序输出的效果。
代码:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for(int i = length - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");}int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin);printf("逆序输出的字符串为:");reverseString(str);return 0;}```四、题目三解析及代码题目描述:编写程序,实现判断一个整数是否是回文数的功能。
2007年春浙江省高等学校计算机等级考试试卷(二级 C)试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案。
[程序说明]输入一个正整数,按照从高位到低位的顺序输出各位数字。
运行示例:Enter an integer: 1902The digits are:1 9 0 2[程序]#include<stdio.h>void main(){ int digit,number,power,t;printf(“Enter an integer:”);scanf(“%d”,&number);number=number<0?-number:number;power = 1;(1 )while( (2) ){power *=10;t/=10;};printf(“The digits are:”);while( (3) ){digit = number / power;printf (“%d”,digit);(4)power / =10;}}[选择的答案](1) A、t=1; B、 t = number; C、; D、number = 1;(2)A、t >=10 B、 power >= 100 C、 t != 0 D、number !=0(3) A、power = = 0 B、digit != 0 C、 number != 0 D、power >=1(4) A、number / = power; B、number %=10; C、number %=power; D、number /=10;试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案。
[程序说明]连续输入一批学生的成绩,直到输入成绩的数量超过50个或者输入的成绩不是有效成绩(有效成绩为0~~100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。
程序调试题1.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5 7、11)。
#include <stdio.h>void main(){ int n,i; scanf("%d",&n);/****** 1 ******/i=2;while(n>1)if(n%i==0) { printf("%d\t",i); n/=i; }else/******** 2 *******/I++;}2.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变成‘b’。
#include <stdio.h>void main(){ char c; c=getchar();if(______c<'v'______) c=c+5;else if (c>='v' && c<='z') ______ c=c-'v'+'a';_____putchar(c);}3.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数f用以求1元2次方程x*x+5*x-2=0 的实根。
#include <stdio.h>#include <math.h>int f(float a,float b,float c,float *x1,float *x2){ if(b*b-4*a*c<0) return 1;*x1=(-b+sqrt(b*b-4*a*c))/2/a;*x2=(-b-sqrt(b*b-4*a*c))/2/a;______return 0;_____}void main(){ float u1,u2; float a=1,b=5,c=-2;if( ________f(a,b,c,&u1,&u2)_________ ) printf("实数范围内无解\n");else printf("%.2f %.2f\n",u1,u2);}4.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数f计算代数多项式 1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x,当x=1.7时的值。
#include <stdio.h>float f(float,float*,int);void main(){ float b[5]={1.1,2.2,3.3,4.4,5.5};printf("%f\n",f(1.7,b,5));}float f( ______float x,float a[],int n_______ ){ float y=a[0],t=1; int i;for(i=1;i<n;i++) { t=t*x; y=y+a[i]*t; }____return y;_____}5.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。
#include <stdio.h>#include <math.h>void main(){int n,s=0; scanf("%d",&n); n=fabs(n);/******** 1 *******/while(n!=0){s=s+n%10;/******** 2 ******/n=n/10;}printf("%d\n",s);}6.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
#include <stdio.h>#include <ctype.h>void main(){char a[80]; int n[5]={0},i; gets(a);for(i=0; a[i]!='\0'; i++)/***** 1 *****/switch(tolower(a[i])) {case 'a': n[0]++; break;case 'e': n[1]++; break;case 'i': n[2]++; break;case 'o': n[3]++; break;/***** 2 *****/case 'u': n[4]++;}for(i=0;i<5;i++) printf("%d\n",n[i]);}7.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
#include <stdio.h>#include <math.h>long f(long n){long m,y=0; m=fabs(n);while(m!=0){y=y*10+m%10;___ m=m/10;____}if(n>=0) return y;else _____ return -y;___}void main(){ printf("%ld\t",f(12345)); printf("%ld\n",f(-34567)); }8.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n、2的m+1次方大于或等于n。
#include <stdio.h>void main(){int m=0,t=1,n;while( _____ scanf("%d",&n) ,n<=0________);while(!(t<=n&&t*2>=n)){_____t=t*2;____m++;}printf("%d\n",m);}9.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333#include<stdio.h>void main(){int i,a,n; long t=0;/********* 1 *******/long s=0;scanf("%d%d",&a,&n);for(i=1;i<=n;i++){/******* 2 ******/t=t*10+1;s=s+t;}s=s*a;printf("%ld\n",s);}10.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7 1 2 3#include <stdio.h>void f(int *a,int n,int k){int i,j,t;for(i=0;i<k;i++){__ t=a[0]__;for( _______j=1;j<n;j++_______ ) a[j-1]=a[j];a[n-1]=t;}}void main(){int i,x[7]={1,2,3,4,5,6,7};f(x,7,3);for(i=0;i<7;i++) printf("%5d",x[i]);printf("\n");}11.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。
计算数列第30项的值。
#include <stdio.h>______ long f(int);_____void main(){ printf("%ld\n",f(30)); }long f(int n){if( _____ n<=2____ ) return 1;else return f(n-1)+f(n-2);}12.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。