程序改错3
C语言程序改错
C语言程序改错〖第1题〗『程序改错』(5分)(题号:422)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/#include"stdio.h"main( ){/**********FOUND**********/long a,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if (a==0)printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);getch();}答案:1). long a,b,c,d,e,x;2). b=x%10000/1000; 或 b=x/1000%10;3). if (a!=0) 或 if (!a)〖第2题〗『程序改错』(5分)(题号:411)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。
C++练习题3
一、单项选择题1.下列字符串中,不可以作为C++标识符的是(D )。
A)Return B)score_1C)_0_D)0Name2.下面有关类的说法中不正确的是(C)A)不可以在类的声明中给数据成员赋初值B)一个类可定义多个构造函数C)析构函数可以有一个或多个参数D)在一个类中可以用另一个类的对象作为数据成员3.下列代码的输出结果为(A )。
int a=2, b=4, c=6;if( a>b)a=b;c=a;if(c!=a)c=b;cout << a << "," << b << "," << c <<endl;A)2,4,2B)2,4,4C)2,4,6 D)程序中有语法错误4.在"int b[ ][3]={{1},{3,2},{4,5,6},{0}};"中,b[1][1]的值为(A)。
A)2B)3C)1D)05.派生类有三种继承基类的方式,三种继承方式的共同特点是(A )。
A)基类的私有成员在派生类中不可直接访问B)基类的私有成员在派生类中仍然是私有成员C)基类的公有成员在派生类中仍然是公有成员D)基类的保护成员在派生类中仍然是保护成员6.设x,y和z都是int型变量,且x=3,y=6,z=4,则下面表达式的值为0的是(D )A)'x' && 'y'B)x<=y C)x || y+z && y-z D)!((x<y) && !z || 1)7.下面程序段运行后的输出结果是(C )。
int x=5;if(x--<5)cout<<x;elsecout<<++x;A)3B)4C)5D)68.下列do…while循环的次数是( B )int x= -1;do{x = x*x ;}while(!x) ;A)无限次B)1次C)2次D)0 次9.下面程序段的输出结果是(B )char c[5]={'a', 'b', '\\', '\0' , 'c' };cout << c;A)ab\\B)ab\C)ab\c D)ab\\ c10.下面程序的输出结果是(B)int n=24680, d;while ( n!=0 ){d = n%10;n /= 10;cout<<d;}A)24680 B)08642C)8642D)211.执行下面程序,输出结果为(B)#include<iostream>using namespace std;void main(){int i=2,j=3;cout<<i<<",";i += 2 * j ;{int i=0;i++;cout<<i<<","<<j<<",";}cout<<i<<","<<j<<endl;}A)2,1,3,1,3B)2,1,3,8,3C)2,9,3,9,3D)变量i重复定义错误12.下面程序的输出结果为(A )#include <iostream>using namespace std;void main(){ int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++,b++;}cout<<"a="<<a<<",b="<<b;}A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=213.有如下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};关于x、y两个数组的正确描述为( C )。
第三章 程序改错
第三章程序改错本章的目的是纠正编程中的常见错误。
我们重点分析了编程中常见错误产生的原因,同时还提供了一些改错专项练习题,希望能够通过本章的学习提高大家的辨错和纠错能力。
3.1要点分析编程中的常见错误主要有两种,一种是语法错误,一种是逻辑错误。
语法错误的产生主要是基本概念问题,逻辑错误的产生主要是基本概念和算法问题。
语法问题主要出现在输入输出、变量和函数的定义、条件的表达等方面。
例如,用scanf()函数给整型变量b赋值,函数会写成如下一些形式:scanf(“%d”,b);或scanf(“%f”,b);或scanf(“%f”,&b);。
而正确的语句是:scanf(“%d”,&b);。
用scanf()函数给字符数组a赋值一串字符,将函数错写成scanf(“%s”,&a);,而正确的写法是:scanf(“%s”,a);,因为数组名是数组的地址,所以不需要在数组名a前加&。
再如,用printf()函数输出整型数组a的元素,错误的写为:printf(“%d”,*a++);。
正确的写法应该是:printf(“%d”,*(a+i));。
数组名的值是不允许改变的。
如,定义整型函数ax形式参数为整型a,b。
正确的定义是int ax(int a,int b);,而错误的写为:int ax(int a, b);,将形式参数的定义与变量定义混淆。
如,在条件表达式中将条件运算符“= =”写成赋值运算符“=”。
将诸如,a大于b并且a小于d的表达式写成b<a<d,而正确的表达式是b<a&&a>d。
类似的例子很多,我们将不一一列举。
下面我们列举几个逻辑错误。
例:程序用二分法在一个按单调不减次序排列的数组中查找某个数。
若存在,输出该数及它的下标位置;若不存在,输出表示找不到该数的信息。
下面程序中有两个逻辑错误,请指出。
#1main( )#2{#3int a[10]={2,5,6,8,11,15,18,22,60,88};#4int low,high,m,i,x;#5scanf(“%d”,&x);#6low=0;#7high=9;#8while(low<=high)#9{#10m=(low+high)/2;#11if(x= =a[m]) break;#12else if(x>a[m]) high=m+1;#13else low=m-1;#14}#15if(low<=high)#16printf(“ d is found,t he position is %d”,x,m);#17else#18printf(“%d is not found\n”,x);#19}程序中第12和13行有错误。
C语言程序设计实验三答案
实验三 选择结构程序设计一、实验目的与要求1. 理解C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2. 掌握利用if 结构实现选择结构的方法。
3. 掌握利用switch 结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序5. 实验4学时二、实验内容1.程序改错题改正下面程序中的错误。
输入实数x ,计算并输出下列分段函数f(x)的值(保留1位小数)。
)100(1=x x==)(x f y)100(≠x x输入输出示例1(改正后程序的运行结果)Enter x :100f )=输入输出示例2(改正后程序的运行结果)Enter x :23f )=源程序(有错误的程序)#include<>#include<>void main(void){double x;printf("Enter x: \n");scanf("=%f", x);if (x = 100) {y = 1/sqrt(x)}else (x != 100) {y = x;}printf("f(%.2f) = %.1f\n",x,y);}答:#include<>#include<>void main(void){double x,y;printf("Enter x:\n");scanf("%lf",&x);if (x=100)y = 1/sqrt(x);elsey= x;printf("f(%.2lf)=%.1lf\n",x,y);}2.一般编程题编程题1输入任意三个整数a,b,c ,求3个数中的最大值和最小值。
答:#include <>void main(){int a,b,c;printf("请输入三个整数:");scanf("%d %d %d",&a,&b,&c);if (a>=b)t=a,a=b,b=t;if (a>=c)t=a,a=c,c=t;if (b>=c)t=b,b=c,c=t;printf("最小值为:%d\n",a);printf("最大值为:%d\n",c);}编程题2输入x ,计算并输出下面分段函数f(x)的值(保留2位小数)。
C语言 程序设计基础试题五及答案
《程序设计基础》考试试卷五班级姓名学号____________1.以下叙述中正确的是( )A. C程序中注释部分可以出现在程序中任意合适的地方B. 花括号"{"和"}"只能作为函数体的定界符C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分2.在一个C语言程序中( )A. main函数必须出现在所有函数之前B. main函数可以在任何地方出现C. main函数必须出现在所有函数之后D. main函数必须出现在固定位置3.判断下面标识符中哪个是C语言中合法的用户定义标识符( )A. a-bB. #abdC. typedefD. _max4.为表示关系X≥Y≥Z,应使用C语言表达式( )A. (X≥Y)&&(Y≥Z)B. X>=Y>=ZC. (X>=Y)‖(Y>=Z)D. (X>=Y)&&(Y>=Z)5.设有一分段函数:x=1 a<b且c=dx=2 a>=b则下列程序段哪个是正确的( )A. if(a<b)B. if (a<b)C. if (a>b)D. if (a>=b)if(c= =d) {if (c= =d) if (c= =d) x=2;x=1; x=1; x=1; elseelse x=2; else x=2;} else x=2; {if(c= =d) x=1;}6.若有两条语句:static char x[]=”abcde”;static char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟};则下列说法中正确的是( )A. x数组和y数组长度相同B.x数组长度大于y数组长度C.x数组长度小于y数组长度D.以上三种说法均错误。
7.返回值为void的函数,其含义是( )A.调用函数之后,被调用的函数没有返回值;B.调用函数之后,被调用的函数不返回C.调用函数之后,被调用的函数返回值为任意类型D.以上三种说法均不正确。
C语言习题级答案3
测试题31、C语言中不合法的字符常量就是 CA、’\65’B、’\xff’C、’\028’D、’&’2、具有相同类型的指针变量p与数组a,不能进行的操作就是(C)。
A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3、若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果就是(B ) z=x>y?x:yA、72B、26C、48D、224、对于建立函数的目的,正确的说法就是 DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5、有定义:char*p1,*p2;则下列表达式中正确合理的就是 CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26、以下程序的运行结果就是(B)。
main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17、若变量已正确定义且 k 的值就是 4,计算表达式 ( j =4, k--) 后,j与k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48、给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x与数组y等价C、数组x与数组y的长度相同D、数组x的长度小于数组y的长度9、在下述程序中,判断i > j共执行了多少次 C#include <stdio、h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710、下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的就是(D)。
程序改错
下面给定程序中,函数fun的功能是:判断用户输入的任意一个字符串是否为"回文串"。
所谓"回文串"是指从开头读和从末尾读均为相同字符,例如:"HELLEH"。
请改正程序中的错误。
注意:不得增行和删行,不得更改程序的结构。
【改错1】错误【参考答案】}while(a[num]!='\0');【改错2】错误【参考答案】if(a[i]!=a[num-1-i])if(a[i]!=a[num-i-1])【改错3】错误【参考答案】}while(i<num/2);【改错4】错误【参考答案】scanf("%s",a);gets(a);功能:用指针作函数参数,编程序求一维数组中的最大和最小的元素值.--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。
【改错1】错误【参考答案】void maxmin(int arr[ ],int *pt1,int *pt2,int n)maxmin(int arr[ ],int *pt1,int *pt2,int n)void maxmin(int *arr,int *pt1,int *pt2,int n)【改错2】错误【参考答案】*pt1=*pt2=arr[0];*pt1=*pt2=*(arr+0);*pt2=*pt1=arr[0];【改错3】错误【参考答案】if(arr[i]>*pt1) *pt1=arr[i];if(*(arr+i)>*pt1)) *pt1=arr[i];if(*pt1<*(arr+i))) *pt1=arr[i];if(*pt1<arr[i]) *pt1=arr[i];【改错4】错误【参考答案】p1=&a;p2=&b;功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。
C语言改错题-含答案
第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。
------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *s, char *t){/**********FOUND**********/int i;sl = strlen(s);for (i=0; i<sl; i++)/**********FOUND**********/t[i] = s[sl-i];for (i=0; i<sl; i++)t[sl+i] = s[i];/**********FOUND**********/t[2*sl] = "0";}main(){char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}答案:1). int i,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。
和值通过函数值返回main 函数。
2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。
------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}main( ){int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) );}答案:1). double fun(int n)2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
C语言习题(7)
C语言习题(第7章函数)一.选择题1.以下说法正确的是________。
A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.以下正确的说法是___________。
A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
3.以下正确的函数定义是___________。
A)double fun(int x, int y); B)int fun(int x,y){ z=x+y ; return z ; } { int z ; return 3;}C)double fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ; z=x+y;z=x+y ; return z ; } return z ; }4.C语言中,简单变量做实参和形参时,以下正确的说法是___________。
A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元5.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是___________。
A)地址传递B)单向值传递D)由用户指定传递方式6.C语言规定,函数返回值的类型是由___________决定的。
A)return语句中的表达式类型B)调用该函数时的主调函数类型C)调用该函数时由系统临时D)在定义函数时所指定的函数类型7.以下正确的描述是___________。
程序改错
五、程序改错1./*--------------------------------------------------------【程序改错】--------------------------------------------------------功能:依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。
例如:输入ab12c3d,则输出123。
注意:不得增行或删行,也不得更改程序的结构!------------------------------------------------------*/#include "stdio.h"/**********ERROR**********/void fun(char s){int i,j;for(i=0,j=0; s[i]!='\0'; i++)if(s[i]>='0'&&s[i]<='9')/**********ERROR**********/s[j]=s[i];/**********ERROR**********/s[j]="\0";}main(){char item[80];printf("\nEnter a string: ");gets(item);printf("\n\nThe string is: \"%s\"\n",item);fun(item);printf("\n\nThe string of changing is: \"%s\"\n",item);}【改错1】【学生答案】void fun(char s)【参考答案】void fun(char *s)void fun(char s[])void fun(char s[80])============================================================【改错2】【学生答案】s[j]=s[i];【参考答案】s[j++]=s[i];{ s[j]=s[i]; j++; }============================================================【改错3】【学生答案】s[j]="\0";【参考答案】s[j]='\0';============================================================/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:读入一个整数m( 5≤m≤20 ),函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
C语言慕课编程题参考答案(4-6周)
else {
p = - b / (2 * a); q = sqrt(disc) / (2 * a); printf("x1=%7.4f, x2=%7.4f\n", p+q, p-q); } return 0; }
第四周_练兵区
1. 检测用户错误输入 #include <stdio.h>
return 0; } 2. 快递费用计算 #include <stdio.h> int main() {
int iArea; float fWeight; float price,rate,base; scanf("%d, %f",&iArea, &fWeight);
price = 0;
switch(iArea) {
编程题参考答案(4-6 周)
第四周_在线测试
1. 数位拆分 v2.0 #include <math.h> #include <stdio.h> int main() {
int n,sum,a,b,sub,multi, mod; float dev;
printf("Please input n:\n"); scanf("%d",&n);
printf("The total number of odd is %d\n", counter1); printf("The total number of even is %d\n", counter2); return 0; }
4. 计算球的反弹高度 #include <stdio.h> int main() {
c语言二级考试题目类型
c语言二级考试题目类型
计算机二级c语言考试题型有单项选择题、程序填空题、程序改错题、程序设计题四大类题型。
各题型分值如下:
一、单项选择题
单项选择题共四十题,四十分,每一个选择分值为1分,其中单项选择中含公共基础知识,该部分十道题,占10分。
二、程序填空题
程序填空题有2-3个空,占比分值18分,该题型为上机题,其三个空占比18分,可想而知其重要性。
三、程序改错题
程序改错题有2-3处错误,该题型分值占比也是18分,难度比程序填空题略难。
该题型也为上机题,也许重视该类题型。
四、程序设计题
程序设计题是计算机二级C语言考试重点,该题为一大题,占比分值24分,该题型也为上机题,为考试重点,需多加练习。
程序改错
/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:生成一个周边元素为5,其它元素为1的3*3的二维数组。
--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/#include "stdio.h"void fun(intarr[][3]){/**********ERROR**********/inti,j/**********ERROR**********/ for(i=1;i<3;i++)for(j=0;j<3;j++)/**********ERROR**********/ if(i==0&&j==0||i==2||j==2)arr[i][j]=5;elsearr[i][j]=1;}main(){int a[3][3],i,j;fun(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\n");}}【改错1】错误【学生答案】inti,j【参考答案】inti,j;【改错2】错误【学生答案】for(i=1;i<3;i++)【参考答案】for(i=0;i<3;i++)【改错3】错误【学生答案】if(i==0&&j==0||i==2||j==2) 【参考答案】if(i==0||j==0||i==2||j==2)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。
程序改错——精选推荐
程序改错1、改正下面程序段中的错误public Class Test {public static void main(String args) { //此处有错int i1,i2,i3;float f;char c;System.out.println("int:" + i1); //此处有错c = “A”; //此处有错f = 3.0; //此处有错}}主方法的args参数的数据类型应该为String数组,即String[] args变量i1要初始化c = …A‟f = 3.0f,当给声明float数据类型的变量赋值时,应该在数值后面加个f或者是F2、改正下面程序段中的错误public class Test {public void main(String[] args) {//此处有错boolean isV alid = 0; //此处有错int scores[5] = {65,70,69,98,86}; //此处有错if( isV alid ) then{System.out.println(scores[5]); //此处有错}else{System.out.println(“No information”);}}}是public static void main(String[] args)在java中boolean数据类型只有两个值,要么false,要么true,不能赋值为0;声明数组时不能具体写出数组的大小,改成int score[]score[5]数组下标不能为5,数组下标越界3、改正下面程序段中的错误public class Student{String id;Strng name;int salary;public void Test(String id, String name, int salary){this.id = id; = name;this.salary = salary;}public void changeInfo(String id, int salary){ //此处有错boolean result;if(id == this.id){this.salary = salary;result = TRUE;}else{result = false;}return result;}public boolean changeInfo(String ids, int salarys){……}}changeInfo(String id, int salary)这个方法的返回类型要为boolean型(可能还有一个错误,就是没有主方法)4、改正下面程序段中的错误import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame{public MyFrame(){Button btn = new Button(“Exit”);setLayout(BorderLayout);add(btn);btn.addActionListener(this); //此处有错setSize(300,300);setVisible(TRUE);}public static void main(String[] args){MyFrame fr = MyFrame();}class MyHandler extends ActionListener{ //此处有错public void actionPerformed(ActionEvent e){System.exit(0);}}}btn.addActionListener(new MyHandler);因为MyFrame这个类并没有实现ActionListener这个接口不是继承,是实现,即implements,因为ActionListener是一个接口。
C语言实验答案-重庆大学出版社(杨永斌 丁明勇)
一2、①a/b②a%b3.(1)#include "stdio.h"#include "conio.h"void main(){ float r,s;r=10;s=3.14*r*r;printf("s=%.4f\n\n",s);getch();}(2)#include "stdio.h"#include "conio.h"#include <stdlib.h>void main(){ int s,num1,num2,num=100;/*初始化随机数发生器,其作用是每次运行程序时使rand()产生的随机数不一样*/int rand();num1=rand()%num +1; /*产生num范围内的随机加法数1*/num2=rand()%num +1; /*产生num范围内的随机加法数2*/printf("%d + %d = ",num1,num2);printf("请输入你的答案: ");scanf("%d",&s);if(num1+num2==s) /*判断是否答对*/printf("Yes,你答对了。
%c\n",7); /*7为响铃*/else /*答错的处理*/printf("No,你答错了。
\n");getch();}二1.验证性实验(1) 程序运行结果x=10,y=10,z=10x=8,y=10,z=16c1=M,c2=4d,c3=115,c4=77c1=M,c2=M,c3=M,c4=Mc1=77,c2=77,c3=77,c4=77c=m,c=109(2)程序运行结果输入:1,23,45,67,6a,b输出:a= 1,b= 2c= 3.00,d= 4.00e= 5,f= 6 u=7,v=6c1=,c2=2输入:1,22,33,44,5a,b输出:a= 1,b= 2c= 2.00,d= 3.00e= 3,f= 4 u=4,v=5c1=a,c2=b(3)程序运行结果1234567812345678123456781234567856 75 6 7c:\a.txt2.填空性实验①%f ②&h ③pi*r*r ④s*h ⑤v3.程序改错(1)#include "stdio.h"#include "conio.h"void main(){ float a,b,x;a=3.1;b=4.5;x=a+b;printf("%.0f",x);getch();}(2)#include "stdio.h"#include "conio.h"void main(){int x,a;x=12345;a=x%10;printf("%d",a);getch();}4.设计性实验(1)#include "stdio.h"#include "conio.h"void main(){ float x,y,z;printf("Please input 2 reals");scanf("%f%f",&x,&y);z=x;x=y;y=z;printf("After swapped,x=%f,y=%f",x,y);getch();}(2)#include "stdio.h"#include "conio.h"void main(){ char a,b;a=127;b=a+1;printf("a=%c,a+1=%c\n",a,b);printf("a=%d,a+1=%d\n",a,b);a=-128;b=a-1;printf("a=%c,a-1=%c\n",a,b);printf("a=%d,a+1=%d\n",a,b);getch();}三一、验证性试验:由于程序主函数结尾缺少"getch();"导致最后的执行结果一闪而过加上后执行结果为15M5.55b=25,y=2.6,c2=Na= 15,b=25x=5.550000,y=2.600000c1=M,c2=N在scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入a的值后,接下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是先输字符再输一个数,其间就可以用空格。
大连理工大学C语言题库(共12套)之欧阳与创编
2665944699【第一套】一、单项选择1.下列数据中,为字符串常量的是(d)。
A、'A'B、How do you do.C、$abcD、"house"2.以下所列的C语言常量中,错误的是(b )。
A、0xFFB、1.2e0.5C、2LD、'\72'3.以下程序的输出结果是(d)。
main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i );}A、x=3.600000,i=4B、x=3 i=3.600000C、x=3,i=3D、x=3.600000,i=3 4.若k是整型,则以下程序段的执行结果是:(b )k=-3;if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&5.若x=2,y=3则x||y的结果是( c)。
A、3B、0C、1D、26.针对下列程序段回答问题(b ).for(t=1;t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);}A、x>=0时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当x<0时整个循环结束7.以下程序的执行结果是(b )。
main(){ int num = 0;while( num <= 2 ) { num++; printf( "%d,",n um ); } }A、0,1,2B、1,2,3,C、1,2,3,4,D、1,2,8.选择正确的输入语句(d )。
C语言题库第4章 函数
第四章函数一、单项选择1. 有以下程序,程序运行的输出结果( A )#include <stdio.h>int f(int x);int main(){ int n=1,m;m=f(f(f(n))); printf(“%d\n”,m);return 0 ;}int f(int x){ return x*2;}A.8 B.4 C.1 D.22. 有以下程序,程序执行后变量w中的值是( C )#include<stdio.h>int funl(double a){return a*=a;}int fun2(double x,double y){ double a=0,b=0;a=funl(x);b=funl(y);return (int)(a+b);}int main(){double w;w=fun2(1.1,2.0);……}3. 有以下程序,程序运行后的输出结果是( B )#include <stdio.h>void fun(int p){ int d=2; p=d++; printf(“%d”,p);}int main(){ int a=1;fun(a); printf(“%d\n”,a);return 0;}4. 有以下程序,程序运行后的输出结果是( B )#include<stdio.h>int fun(){ static int x=1;x*=2;return x;}int main(){ int i,s=1;for(i=1;i<=3;i++) s*=fun();printf("%d\n",s);}5. 有以下程序,程序运行后的输出结果是( B ) #include<stdio.h>int fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}int main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));return 0;}6. 有以下程序,程序运行后的输出结果是( D )#include<stdio.h>int f(int x,int y){return ((y-x)*x);}int main(){ int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}7. 有以下程序:程序运行后的输出结果是( A ) #include <stdio.h>int f(){ static int x=1;x+=1; return x;}int main(){ int i,s=1;for(i=1;i<=5;i++) s+=fun();printf("%d\n",s);return 0;}8. 设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是( D )9. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( C )10. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( B )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
改错题目(启动VF,按照题目的要求,改正错误,得出正确的结果)
1、"设某四位数的各位数字的立方和等于100,问满足这种条件的四位数且是素数的数共有多少个?‘4’
set talk off
clea
n=0
for x=1000 to 9999
f=1
for i=2 to int(sqrt(x))
if mod(i,x)=0
f=0
exit
endif
endfor
if f=0
a=int(x/1000)
b=int((x-a*1000)/100)
c=int(mod(x,100)/10)
d=mod(x,10)
if a*a*a+b*b*b+c*c*c+d*d*d=100
n=n+1
endif
endif
endfor
? n
set talk on
return
2、"把一张一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案?‘13’
set talk off
clea
n=0
for yi=11 to 100
for er=11 to 20
for wu=11 to 20
if yi+er+wu=100
n=n+1
endif
endfor
endfor
endfor
? n
set talk on
return
3、"找满足以下条件: X^2+Y^2+Z^2=41^2 且X+Y+Z之值最大的三个正整数X,Y,Z, 求X+Y+Z之值.‘71’
set talk off
clea
max=0
for x=0 to 41
for y=0 to 41
for z=0 to 41
if x*2+y*2+z*2=41*41
if max>x+y+z
max=x+y+z
endif
endif
endfor
endfor
endfor
? max
set talk on
return
4、"已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
求[200,500]之间能被其因子数目整除的数的个数。
‘28’
set talk off
clea
nu=0
for n=200 to 500
s=0
for i=1 to n
if mod(i,n)=0
s=s
endif
endfor
if n>s
nu=nu+1
endif
endfor
? nu
set talk on
return
6、求100以内最小的自然数n,使得从1开始的连续n个自然数的平方之和大于5500。
‘25’
set talk off
clear
s=0
for n=1 to 100
s=s+n*n
if s<=5500
exit
endif
endfor
? s
set talk on
return
7、求出[100,1000]内所有能同时被7和9整除的整数之和。
","7479"
set talk off
clear
s=1
for x=100 to 1000
if mod(x,7)=1 or mod(x,9)=0
s=s+1
endif
endfor
? s
set talk on
return
8、将大于1000且能被3和5中至少一个数整除的所有整数按从小到大顺序排列后,求前面20个数之和。
‘20465’
set talk off
clear
k=0
s=0
x=1000
do while k<=20 &&
x=x+1
if mod(x,3)=0 and mod(x,5)=0 &&
s=s+x
k=k+2 &&
endif
enddo
? s
set talk on
return
==================================================================== ====================================================================
9、求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。
‘18’
set talk off
clear
s=0
for n=1 to 100
s=(s+1)/n
if s>=3.5
loop
endif
endfor
? n-1
set talk on
return
"求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。
《一级》
set talk off
clear
s=0
for x=101 to 299
if mod(x,2)=0 and not mod(x,3)=0 and mod(x,5)=0
x=s+x
endif
endfor
? s
set talk on
return
","18630
求50以内最大的自然数n,使得从102开始的连续n个偶数之和小于3000。
《一级》
set talk off
clear
s=0
for n=1 to 50
a=100+2*n
s=s*a
if s>=3000
loop
endif
endfor
? n-1
set talk on
return
","23
求出[1234,6789]内中间两位数字之和等于首尾两位数字之积的数的个数。
《一级》
set talk off
clear
n=0
for x=1234 to 6789
a=int(x/1000)
b=int(x-a*1000)/100
c=int(x-a*1000-b*100)/10
d=x-a*1000-b*100-c*10
if b+c=a*d
n=n+1
endif
endfor
? n
set talk on
return
","
175"
已知数列{f(n)}:f(1)=1,f(2)=4,当n=3,4,5,…时,f(n)=3*f(n-1)-f(n-2)。
试求出100以内最大的自然数n使得此数列的第n项小于5364321。
《一级》
set talk off
clear
dimension f(100)
f(1)=1
f(2)=4
for n=3 to 100
f(n)=3*f(n-1)-f(n-2)
if f(n)>5364321
loop
endif
endfor
? n
set talk on
return
","
16
"。