我的代码(29题陈文)
- 格式:doc
- 大小:51.00 KB
- 文档页数:8
完整版C语言100个经典题目在学习和掌握C语言编程技巧的过程中,解决各种经典题目是非常重要的。
下面是一份C语言的100个经典题目,帮助你提高编程能力和理解C语言的核心概念。
1. 编写一个程序,输出"Hello, World!"。
2. 编写一个程序,从键盘输入两个整数,然后输出它们的和。
3. 编写一个程序,从键盘输入两个整数,然后交换它们的值。
4. 编写一个程序,输出1到100之间所有的奇数。
5. 编写一个程序,输出1到100之间所有能被3整除的数。
6. 编写一个程序,判断一个年份是否为闰年。
7. 编写一个程序,将一个字符串逆序输出。
8. 编写一个程序,求出一个整数的阶乘。
9. 编写一个程序,判断一个数是否为素数。
10. 编写一个程序,输入一个字符串,然后统计其中的字母、数字和空格的个数。
11. 编写一个程序,将一个字符串转换为大写字母。
12. 编写一个程序,从键盘输入一个字符串,然后去除其中的重复字符。
13. 编写一个程序,将一个字符串按照指定分隔符进行拆分,并输出拆分后的结果。
14. 编写一个程序,将一个字符串中的所有单词首字母大写。
15. 编写一个程序,找出一个整数数组中的最大值。
16. 编写一个程序,找出一个整数数组中的最小值。
17. 编写一个程序,计算一个整数数组中所有元素的平均值。
18. 编写一个程序,对一个整数数组进行冒泡排序。
19. 编写一个程序,对一个整数数组进行选择排序。
20. 编写一个程序,对一个整数数组进行插入排序。
21. 编写一个程序,对一个整数数组进行快速排序。
22. 编写一个程序,计算斐波那契数列的第n个数字。
23. 编写一个程序,计算一个整数的平方根。
24. 编写一个程序,判断一个字符串是否为回文字符串。
25. 编写一个程序,输入一个正整数n,然后输出n行杨辉三角。
26. 编写一个程序,将一个二维整数数组进行转置。
27. 编写一个程序,将一个二维整数数组进行矩阵乘法运算。
3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。
…………其中int和short类型,其取值范围是-32768~32767。
32769在这两种类型中实际表示负数,它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。
char和unsigned char为8位,若将int或long类型数据赋给这种类型,则截取数据低8位。
同理,若将long赋给int,则截取低16位。
3.9求下面算术表达式的值。
x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4..7(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5解:(1)2.5(2)3.53.10写出程序运行的结果。
main ( ){ int i, j, m, n;i=8;j=10;m=++i;n=j++;printf (“%d, %d, %d, %d”, i, j, m, n);}解:运行结果为:9,11,9,103.12 出下面表达式运算后a的值,设原来a=12。
设a和n都已定义为整型变量。
(1)a+=a (2)a-=2(3)a*=2+3 (4)a/=a+a(5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a解:(1)24 (2)10(3)60 (4)0(5)0 (6)04.5请写出下面程序的输出结果:main ( ){ int a=5,b=7;float x=67.8564,y=-789.124;char c=‟A‟;long n=1234567;unsigned u=65535;printf(“%d%d\n”,a,b);printf(“%3d%3d\n”,a,b);printf(“%f,%f\n”,x,y);printf(“%-10f,%-10f\n”,x,y);printf(“%8.2f, %8.2f,%4f, %4f, %3f, %3f\n”,x,y,x,y,x,y); printf(“%e,%10.2e\n”,x,y);printf(“%c,%d,%o,%x\n”,c,c,c,c);printf(“%ld,%lo,%x\n”,n,n,n);printf(“%u,%o,%x,%d\n”,u,u,u,u);printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”);}运行结果:5□7□□5□□767.856400, -789.12402367.856400□, -789.124023□□□67.86,□□-789.12,67.8564,-789.1240,67.856400,-789.1240236.785640e+01,□□-7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER,□□COM可以发现,输出数据中若有负号、e和小数点,这些字符也占位。
陈文与重庆市南岸区住房和城乡建设委员会撤销行政合同二审行政判决书【案由】行政行政行为种类行政合同【审理法院】重庆市第五中级人民法院【审理法院】重庆市第五中级人民法院【审结日期】2020.09.18【案件字号】(2020)渝05行终397号【审理程序】二审【审理法官】封莎龙晓波曾平【审理法官】封莎龙晓波曾平【文书类型】判决书【当事人】陈文;重庆市南岸区住房和城乡建设委员会【当事人】陈文重庆市南岸区住房和城乡建设委员会【当事人-个人】陈文【当事人-公司】重庆市南岸区住房和城乡建设委员会【代理律师/律所】张也北京德恒(重庆)律师事务所【代理律师/律所】张也北京德恒(重庆)律师事务所【代理律师】张也【代理律所】北京德恒(重庆)律师事务所【法院级别】中级人民法院【字号名称】行终字【原告】陈文;重庆市南岸区住房和城乡建设委员会【本院观点】根据《最高人民法院关于审理行政协议案件若干问题的规定》第二条第(二)项、第四条之规定,本案涉及的《国有土地上房屋征收补偿合同》属于法院受案范围。
【权责关键词】行政合同合法可撤销受案范围举证责任质证关联性合法性维持原判行政合同【指导案例标记】0【指导案例排序】0【本院认为】本院认为,根据《最高人民法院关于审理行政协议案件若干问题的规定》第二条第(二)项、第四条之规定,本案涉及的《国有土地上房屋征收补偿合同》属于法院受案范围。
南岸区住建委作为政府确定的房屋征收部门组织实施本行政区域的房屋征收与补偿工作,作为被告主体适格。
《最高人民法院关于审理行政协议案件若干问题的规定》第十条规定,原告主张撤销、解除行政协议的,对撤销、解除行政协议的事由承担举证责任。
该司法解释第十四条规定,原告认为行政协议存在胁迫、欺诈、重大误解、显失公平等情形而请求撤销,人民法院经审理认为符合法律规定可撤销情形的,可以依法判决撤销该协议。
可见,上诉人请求撤销涉案《征收补偿合同》,需要对行政协议存在胁迫、欺诈、重大误解、显失公平等情形承担举证责任。
计算机等级考试中的代码填空题解析代码填空题是计算机等级考试中常见的题型之一,考察考生对编程语言的理解和运用能力。
本文将以Python语言为例,对计算机等级考试中的代码填空题进行解析。
一、题目一```pythondef find_max(num_list):max_num = ______for num in num_list:if num > max_num:max_num = numreturn max_numnums = [5, 9, 3, 2, 7]print(find_max(nums))```解析:该题要求填写横线处的代码,使得函数能够正确找到列表`num_list`中的最大值并返回。
根据题目中的提示,我们需要在函数内部添加合适的代码。
正确答案:```max_num = float('-inf')```代码分析:- `max_num`变量被初始化为负无穷,保证`num_list`中的任意值都会大于它。
- 遍历`num_list`列表中的每个元素,将大于`max_num`的值赋给`max_num`。
二、题目二```pythondef fibonacci(n):if n <= 1:return nelse:return ______num = 6print(fibonacci(num))```解析:该题要求填写横线处的代码,使得函数能够正确计算斐波那契数列的第`n`项并返回。
根据题目中的提示,我们需要在函数内部添加合适的代码。
正确答案:```fibonacci(n - 1) + fibonacci(n - 2)```代码分析:- 首先判断`n`是否小于等于1,若满足条件,则返回`n`。
- 若`n`大于1,采用递归的方式计算斐波那契数列的第`n`项,即返回第`n-1`项与第`n-2`项的和。
三、题目三```pythondef calculate_average(num_list):sum = 0count = 0for num in num_list:sum += numcount += ____average = _____return averagenums = [2, 4, 6, 8, 10]print(calculate_average(nums))```解析:该题要求填写横线处的代码,使得函数能够正确计算列表`num_list`中数值的平均值并返回。
c语言经典100题菜鸟教程C语言是一种通用且广泛应用的编程语言,学习C语言是许多程序员的第一步。
熟练掌握C语言是提高编程技能的关键之一。
为了帮助菜鸟们更好地学习C语言,本篇文章将介绍C语言经典100题,希望能够帮助大家巩固学习内容,提升编程能力。
1. 请编写一个C程序,输出"Hello, World!"。
```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```2. 请编写一个C程序,输入两个整数,求它们的和并输出。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```3. 请编写一个C程序,输入一个整数,判断该整数是否为奇数并输出。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数", num);} else {printf("%d是奇数", num);}return 0;}```4. 请编写一个C程序,输入一个数字n,计算n的阶乘并输出。
```c#include <stdio.h>int main() {int n, i;unsigned long long factorial = 1;printf("请输入一个整数:");scanf("%d", &n);for (i = 1; i <= n; ++i) {factorial *= i;}printf("%d的阶乘为:%llu", n, factorial);return 0;}```5. 请编写一个C程序,输入一个数字n,输出斐波那契数列中的第n个数。
c语言程序设计教程第二版课后习题答案1. 基本概念和语法1.1 变量和数据类型题目:请将下列C语言的变量定义语句补充完整,并给出每个变量的数据类型和初始化值。
代码:```c#include <stdio.h>int main() {int a;float b;char c;double d;int x = 5;float y = 3.14;char z = 'A';printf("a的数据类型:%s,a的初始值:%d\n", typeof(a), a);printf("b的数据类型:%s,b的初始值:%f\n", typeof(b), b); printf("c的数据类型:%s,c的初始值:%c\n", typeof(c), c); printf("d的数据类型:%s,d的初始值:%lf\n", typeof(d), d); printf("x的数据类型:%s,x的初始值:%d\n", typeof(x), x); printf("y的数据类型:%s,y的初始值:%f\n", typeof(y), y); printf("z的数据类型:%s,z的初始值:%c\n", typeof(z), z); return 0;}```答案:a的数据类型:int,a的初始值:随机值b的数据类型:float,b的初始值:随机值c的数据类型:char,c的初始值:'\0'd的数据类型:double,d的初始值:随机值x的数据类型:int,x的初始值:5y的数据类型:float,y的初始值:3.140000z的数据类型:char,z的初始值:A1.2 运算符和表达式题目:请在下列C语言程序中补充运算符,使程序达到题目要求。
```c#include <stdio.h>int main() {int a = 5;int b = 3;int c;// 1. 将a和b的和赋值给c,并将c的值输出// 补充代码// 2. 将a和b的差赋值给c,并将c的值输出// 补充代码// 3. 将a和b的积赋值给c,并将c的值输出// 补充代码// 4. 将a除以b的商赋值给c,并将c的值输出// 补充代码// 5. 将a除以b的余数赋值给c,并将c的值输出// 补充代码return 0;}```要求:1. 补充代码,使程序能够正确输出运算结果;2. 使用合适的运算符。
C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 12 20、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________.A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#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) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2 D) 7 3 60、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}} 该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=474、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
武汉纺织大学专升本c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的数据类型?A. IntB. IntegerC. intD. in2. C语言中,用于定义一个字符常量的是?A. "A"B. 'A'C. AD. a3. 下列哪个选项是C语言中的逻辑运算符?A. <=B. ==C. &&D. ++4. C语言中,用于定义一个整型变量的关键字是?A. varB. intC. integerD. type5. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释*/6. C语言中,以下哪个选项是正确的数组定义方式?A. int a[5];B. int a[];C. int a[5] = {0};D. All of the above7. C语言中,以下哪个选项是正确的函数定义?A. int function(int x) { return x; }B. int function(int x) { return x; }C. int function(int x) { return x; }D. All of the above8. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = "Hello";D. char str[] = {"Hello"};9. C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"10. 在C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student { int id; char name[20]; };B. struct Student { int id; char name[]; };C. struct Student { int id; char name; };D. All of the above二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:________2. C语言中,用于表示逻辑“与”的运算符是:________3. 一个C语言程序的执行从______函数开始。
的例子,它演示了如何使用C语言解决一个简单的数学问题。
假设我们要编写一个程序,来求解二次方程ax^2 + bx + c = 0的根。
首先,我们需要一些基本概念。
二次方程的根是解方程ax^2 + bx + c = 0的两个实数解。
这个方程可以改写为(x + p) (x + q) = 0,其中p 和q 是常数,由a, b, c 决定。
通过求解这个等式,我们得到两个解:x1 = -p 和x2 = -q。
这是一个简单的C语言程序,可以求解这个二次方程的根:```c#include <stdio.h>#include <math.h>// Function to find roots of quadratic equation// a, b and c are coefficients of the equation// dx is value of xvoid solve_quadratic(double a, double b, double c, double d, double* x1, double* x2) { double discr = b * b - 4 * a * c;if (discr > 0) {*x1 = (-b + sqrt(discr)) / (2 * a);*x2 = (-b - sqrt(discr)) / (2 * a);} else if (discr == 0) {*x1 = -b / (2 * a);*x2 = *x1;} else {// No real roots, or infinite number of real roots*x1 = *x2 = INFINITY; // or any value that represents no solution}}int main() {double a = 1, b = 5, c = 6; // coefficients of the equationdouble x1, x2;solve_quadratic(a, b, c, 0, &x1, &x2);printf("Roots of the equation are: x1 = %.2f and x2 = %.2f\n", x1, x2);return 0;}```这个程序首先定义了一个函数`solve_quadratic`,它接受二次方程的系数和dx作为输入,并返回两个解。
第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。
苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。
某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。
要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。
#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。
#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。
c#程序设计教程(课后习题答案代码)(优选.)判断是否是闰年课本63用户输入整数反向显示课本67或68乘法表课本69判断从键盘输入大于3的整数是否为素数课本70求输入所以数其中正数的和课本70求 1平方+2平方+……+n平方小于等于1000 的最大n 课本71或72读入一组数(以0结束),分别求奇数和偶数和staticvoidMain(string[] args){int n,s1=0,s2=0;do{ n = int.Parse(Console.ReadLine());if (n%2==1)s1 += n;elses2 += n;} while (n!=0);Console.WriteLine("奇数之和={0}",s1);Console.WriteLine("偶数之和={0}",s2);}输入正整数n计算S=1+(1+2)+(1+2+3)+……+(1+2+….+n)int n,i,j,s=0;Console.Write("n:");n = int.Parse(Console.ReadLine());for (i = 1; i <= n; i++)for (j = 1; j <= i; j++)s += j;Console.WriteLine("s={0}", s);杨辉三角staticvoidMain(string[] args){int i,j,c,n;Console.Write("n:");n=int.Parse(Console.ReadLine());if (n>13)Console.WriteLine("输入的数值太大!");else{for (i=0;i<=n-1;i++){ for (j=1;j<15-i;j++)Console.Write(" "); //每次循环显示2个空格 c=1;Console.Write("{0} ",c);for (j=1;j<=i;j++){ c=c*(i-j+1)/j;if (c<100)if (c<10)Console.Write("{0} ",c); //显示3个空格elseConsole.Write("{0} ",c); //显示2个空格elseConsole.Write("{0} ",c); //显示1个空格}Console.WriteLine();}计算π的值double pi=0.0;int i;for (i=1;i<=2000;i++)if (i%2==1)pi=pi+1.0/(2*i-1);elsepi=pi-1.0/(2*i-1);pi=4*pi;Console.WriteLine("π={0}", pi);求水仙花数staticvoidMain(string[] args){ int i, n, a, b, c; for (i = 100; i <= 999; i++){ n = i;c = n % 10; n = n / 10;b = n % 10; n = n / 10;a = n;if (a * a * a + b * b * b + c * c * c == i){ Console.WriteLine("{0} {1} {2} = {3}", a, b, c,a*a*a+b*b*b+c*c*c);//Console.Write("{0} ", i);}}Console.WriteLine();}假设10个整数用一维数组存放,求最大值和次大值staticvoidMain(string[] args){ int[] a = newint[10]{1,8,10,4,7,9,6,10,2,5};int n=10,max1,max2,i;max1=a[0]>a[1]?a[0]:a[1];max2=a[0]>a[1]?a[1]:a[0];for (i=2;i<n;i++)if (max1<a[i]){ max2=max1;max1=a[i];}Console.WriteLine("max1={0},max2={1}",max1,max2);}用一个二维数组存放5个考生4门功课的考试成绩,求每位考生的平均成绩课本89页staticvoidMain(string[] args){ constint Max = 5; //考生数int[] Ave = newint[Max]; //定义一个一维数组存储考生的总成绩int[,] grade={{88,75,62,84},{96,85,75,92}, //定义二维数组存储考生成绩{68,63,72,78},{95,89,76,98},{76,65,72,63}};for(int i=0; i<Max; i++){ for(int j=0; j<4; j++){ Ave[i] += grade[i,j]; //累加考生成绩}}for (int k = 0; k < Max; k++)Console.WriteLine("考生{0}平均成绩={1} ",k+1, Ave[k]/4.0);}用俩个一维数组分别存放5个学生的学号和姓名,分别按学号和姓名排序课本89页上级实验5 classProgram{ constint Max = 5;staticvoid disp(int[] no,string[] name,string str){ Console.WriteLine(str);Console.Write("学号:\t");for (int i = 0; i < no.Length; i++)Console.Write("{0}\t",no[i]);Console.WriteLine();Console.Write("姓名:\t");for (int i = 0; i < name.Length; i++)Console.Write("{0}\t", name[i]);Console.WriteLine();}staticvoidMain(string[] args){ int[] no = newint[] { 2, 4, 5, 1, 3};string[] name = newstring[] {"Smith","John","Mary","Cherr","Tomn"};disp(no, name,"排序前:");Array.Sort(no, name);disp(no, name,"按学号排序后:");Array.Sort(name, no);disp(no, name, "按姓名排序后:");}课本124页8classProgram{ staticvoidMain(string[] args){ Person p1 = newPerson(2, 50);Animal a1 = newAnimal();p1.show();a1.show();}}publicclassPerson//定义人类{publicint legs; //腿的只数protectedfloat weight; //重量public Person() //默认构造函数{ }public Person(int legs1,float weight1)//自定义方法F{ legs= legs1;weight = weight1;}publicvoid show(){ Console.WriteLine("某人有{0}只腿,重量为{1}kg", legs, weight);}}classAnimal//定义动物类{ publicint num; //腿的条数privatefloat weight; //重量public Animal() //Animal类的默认构造函数{ }public Animal(int n,float w) //Animal类带2个参数的构造函数{ num = n;weight = w;}publicvoid show(){ Console.WriteLine("某动物有{0}只脚,重量为{1}kg", num, weight);}}课本124页9//定义了一个委托,委托在传递方法时,方法必须带两个int型的参数。
c语言程序设计现代方法_p243_编程题一、编程题概述本节编程题旨在帮助您更好地理解和掌握C语言程序设计的基本概念和现代方法。
通过解决这些题目,您将能够提高自己的编程技能,并加深对C语言的理解。
二、编程题一:字符串操作题目:编写一个程序,实现以下功能:从标准输入读取一个字符串,将其中的所有大写字母转换成小写字母,并输出结果。
解题思路:1. 使用C语言中的字符数组来存储输入的字符串。
2. 使用循环遍历字符串中的每个字符,将其转换为小写字母。
3. 输出转换后的字符串。
代码实现:```c#include <stdio.h>#include <ctype.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 从标准输入读取字符串for (int i = 0; str[i] != '\0'; i++) { // 遍历字符串中的每个字符str[i] = tolower(str[i]); // 将字符转换为小写字母}printf("转换后的字符串为:%s", str); // 输出结果return 0;}```总结:该题目主要考察了C语言中的字符数组和字符串操作,需要灵活运用tolower()函数来实现将大写字母转换成小写字母的功能。
三、编程题二:快速排序算法优化题目:编写一个程序,实现快速排序算法,并对其进行优化,使其在性能上更加优秀。
解题思路:1. 理解快速排序算法的基本原理和实现方法。
2. 通过调整快速排序算法的参数和优化算法实现方式,提高算法的性能。
3. 对优化后的快速排序算法进行测试和验证。
代码实现:```c#include <stdio.h>#include <stdlib.h>void swap(int* a, int* b) {int temp = *a;*a = *b;*b = temp;}int partition(int arr[], int low, int high) {int pivot = arr[high]; // 选择最后一个元素作为枢轴元素int i = (low - 1); // 初始化指向枢轴元素的下一个位置的指针i为low-1for (int j = low; j <= high - 1; j++) { // 从左向右遍历数组中的元素,与枢轴元素进行比较和交换操作if (arr[j] <= pivot) { // 如果当前元素小于等于枢轴元素,则交换它和指针i指向的元素的位置,并将指针i向后移动一位swap(&arr[i + 1], &arr[j]);i++;}}swap(&arr[i + 1], &arr[high]); // 将枢轴元素放到指针i指向的位置上,完成枢轴元素的划分操作return (i + 1); // 返回枢轴元素的位置作为排序后的中间位置的下标}void quickSort(int arr[], int low, int high) { // 递归调用快速排序算法进行排序操作,从中间位置开始递归排序左右两部分数组if (low < high) { // 如果中间位置的下标小于等于high,则继续递归排序左右两部分数组,直到整个数组有序为止int pivot_index = partition(arr, low, high); // 调用partition函数进行枢轴元素的划分操作,返回枢轴元素的位置作为排序后的中间位置的下标quickSort(arr, low, pivot_index - 1); // 对左半部分数组进行递归排序操作,直到左半部分有序为止quickSort(arr, pivot_index + 1, high); // 对右半部分数组进行递归排序操作,直到右半部分有序为止}}```总结:该题目主要考察了C语言中的数组操作和递归函数的使用,需要对快速排序算法有深入的理解和熟练的掌握。
Visual Basic程序设计语言常用算法源代码30例题1、统计随机产生的十个两位正整数中偶数与奇数的个数,并求出偶数与奇数各自的总和Option ExplicitPrivate Sub Form_Click()Dim x As Integer, s1 As Integer, s2 As IntegerDim n1 As Integer, n2 As Integer, i As IntegerRandomizeFor i = 1 To 10_x=int(90*rnd)+10__Print x;If _ x mod 2=0 Thenn2 = n2 + 1s2 = s2 + xElse___n1=n1+1_s1 = s1 + xEnd IfNext iPrintPrint "奇数个数="; n1; "偶数个数="; n2;End Sub2.从字符串中分离数字和字母Private Sub Command1_Click()Dim s As String, i As IntegerConst ch As String = “0123456789.”s = "2L0A09U.0SI3V.24"For i = 1 To Len(s)If InStr(ch, Mid(s, i, 1)) = 0 Thenst1 = Mid(s, i, 1) & st1Elsest2 = st2 & Mid(s, i, 1)End IfNext iPrint st1: Print st2End Sub3. 统计字符串中“O”的个数Private Sub Command1_Click()a = "THERE IS A BOOK ON THE DESK"m = len(a)For i = 1 To mb =mid(a,i,1)If b = "O" Then num=num+1Next iPrint numEnd Sub4.从给定的字符串中只分离出数字Private Sub Command1_Click()Dim s As String, t As StringDim i As Integers = Text1.TextFor i = 1 To Len(s)If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= 9 Thent = t & Mid(s, i, 1)End IfNext iText2.Text = tEnd Sub5.(一)将正整数转化成二进制数Private Sub Command1_Click()Dim n As Long, t As Stringn = Val(Text1.Text)Dot = n Mod 2 & tn = n \ 2Loop Until n = 0Text2.Text = tEnd Sub5、(二)将正整数转化成16进制Private Sub Command1_Click()Dim n As Long, t As String, g As Stringn = Val(Text1.Text)Dog = n Mod 16If Val(g) > 9 Theng = Chr(55 + Val(g))End Ift = g & tn = n \ 16Loop Until n = 0Text2.Text = tEnd Sub5、(三)将正整数转化成8进制Private Sub Command1_Click()Dim n As Long, t As Stringn = Val(Text1.Text)Dot = n Mod 8 & tn = n \ 8Loop Until n = 0Text2.Text = tEnd Sub6.找出100以内的所有勾股数(不包括100)Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, n As IntegerFor a = 1 To 99For b = 1 To 99For c = 1 To 99If a ^ 2 + b ^ 2 = c ^ 2 And a <> b Thenn = n + 1Print a; b; c; “; “;If n Mod 5 = 0 ThenPrintEnd IfEnd IfNext cNext bNext aPrint nEnd Sub7.找出三位数字中的所有升序数(各位数字>十位数字>百位数字)Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, n As IntegerFor a = 1 To 9For b = 1 To 9For c = 1 To 9If a < b And b < c Thenn = n + 1Print a * 100 + b * 10 + c;If n Mod 10 = 0 Then '控制每行打印10个PrintEnd IfEnd IfNext cNext bNext aPrint nEnd Sub或Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer, js As Integer For n = 100 To 999a1 = n \ 100 ‘取出百位数字a2 = n \ 10 Mod 10 ‘取出十位数字a3 = n Mod 10 ‘取出个位数字If a1 < a2 And a2 < a3 Thenjs = js + 1Print n;If js Mod 10 = 0 ThenPrintEnd IfEnd IfNext nPrint jsEnd Sub利用过程调用思想求升序数例找出a-b范围内的所有升序数,a>=100,b<=30000Private sub command1_click()Dim a as integer,b as integer,i as integera=text1:b=text2For i=a to bIf sx(i) thenList1.additem iEnd ifNext iEnd subPrivate sub function sx(byval n as integer) as booleanDim a() as integer,k as integer,i as integerDoK=k+1Redim preserve a(k)a(k)=n mod 10n=n\10loop until n<=0for i=1 to ubound(a)-1if a(i+1)>=a(i) then exit function (应该去判断a(1)>a(2)……a(k)但是不好判断,遇难则反,只要有一个a(i+1)>=a(i)这不是升序数)next isx=trueend function8.最小公倍数Private Sub Form_Click()Dim m%, n%, tem%m = Val(Text1.Text)n = Val(Text2.Text)tem = mDo While tem Mod n <> 0tem = tem + mLoopPrint m; "和"; n; "的最小公倍数是:"; temEnd Sub9.求一维数组a(n)各元素的和:Dim s as integer , I as intgers=0for i=1 to ns=s+a(i)next i10.求二维数组a(n,m)各元素的和Dim s as integer, i as integer, j as integers=0For i=1 to nfor j=1 to ms=s+a(i,j)next jNext i11. 求二维数组a(m,n)周边元素的和Dim s as integer, i as integerS=0For i=1 to ns=s+a(1,i)+a(m,i) (求第一行与最后一行的和)Next ifor i=2 to m-1s=s+a(i,1)+a(i,n) (求第二行到倒数第二行第一列与最后一列的和)Next i12、求二维数组a(n,n)主对角线元素的和(理解主对角线)Dim s as integer,i as integerS=0For i=1 to ns=s+ a (i,i)Next i13、求二维数组a(n,n)次对角线元素的Dim a as integer, i as integerS=0For i=1 to ns=s+a(i,n+1-i)Next i14、三种排序法(1)选择排序法是逐个比较,逆序交换;冒泡法是两两比较,逆序交换.(2)直接排序法(以降序为例)特点:比较后不立即互换元素,而是记下较大值的位置,并在每一轮比较完毕后和S(i)互换选择排序法(比较排序法)基本过程(以降序为例):将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过N-1 轮的比较,可将N 个数排好(3)冒泡法排序(以升序为例),则方法为:将相邻两个数比较,把小数对调到前边,如此进行一轮后,就会把最大的数互换到最后,再进行一次,则会把第二大数排在倒数第二的位置上,进行N-1次后,整个数列即可排好.在这种排序过程中,小数如同气泡一样逐层上浮,而大数逐个下沉,因此,被形象的喻为“冒泡”.选择法对数组经行降序排列Option explicitOption base 1Private sub command1_click()Dim sort(10) as integer, temp as integer , i as integer, j as integerFor i=1 to 10Sort(i)=int(rnd*99)+1Text1=text1 & str(sort(i))Next iFor i= 1 to 9For j=i+1 to 10If sort(i)<sort(j) thenTemp=a(i)a(i)=a(j)a(j)=tempend ifnext jtext2=text2 & str(sort(i))next itext2=text2 & str(sort(i))end sub直接排序法的精髓(降序)For i=1 to N-1pointer=I‘初始化pointer,在每轮比较开始处for j=I+1 to Nif Sort(pointer)< Sort(j) then pointer= j next jif I<> pointer thentemp=Sort(i) ‘交换Sort(i)=Sort(pointer)Sort(pointer)=tempend ifNext I冒泡排序法的精髓(升序)For i=1 to N-1for j=1 to N-i ‘比较次数逐次减少if S(j) > S(j+1) thent=S(j)S(j)=S(j+1)S(j+1)=t ‘立即互换end ifnext jnext i15、求三个数的和!Private Sub ifnum(str1 As String, n As Integer)Dim k As IntegerFor k = 1 To Len(str1) ‘逐个字符判断是否为数字If Asc(Mid(str1, k, 1)) < 48 Or Asc(Mid(str1, k, 1)) > 57 Thenn = 0: Exit SubEnd IfNext kn = 1End SubPrivate Sub Command1_Click()Dim a As String, b As String, c As StringDim y1 As Integer, y2 As Integer, y3 As Integera = Text1.Text ‘a,b,c用来取得三个文本框的字符串b = Text2.Textc = Text3.TextCall ifnum(a, y1) '用来判断a,b,c是否为数字串,为数字串时y1,y2,y3都为1 Call ifnum(b, y2)Call ifnum(c, y3)If y1 = 1 And y2 = 1 And y3 = 1 ThenText4.Text = Val(a) + Val(b) + Val(c)ElseText4.Text = "三个文本框内有非数字串"End IfEnd Sub16.求三个数的最小公倍数Option ExplicitPrivate Sub Command1_Click()Dim A As Integer, B As IntegerDim L As Long, C As IntegerA = Text1B = Text2C = Text3L = LCM(LCM(A, B), C)Text4 = LEnd SubPrivate Function LCM(ByVal X As Integer, ByVal Y As Integer)Dim M As Long, Flg As BooleanFlg = FalseDo Until FlgM = M + XIf M Mod Y = 0 ThenFlg = TrueEnd IfLoopLCM = MEnd Function17.打印九九乘法表Private sub form_clickDim I as integer, j as integerFor i=1 to 9For j=1 to iPrint j;”*”I;”=”i*j;Next jprintNext iEnd sub18判断完数(一个数如果恰好等于他所有因子之和,这个数就是完数。
计算机等级考试中常见的程序设计题目解析与示例随着计算机技术的飞速发展,计算机等级考试作为一种评估和证明计算机能力的方式越来越受到重视。
在计算机等级考试中,程序设计题目是必不可少的一部分。
本文将对计算机等级考试中常见的程序设计题目进行解析,并给出相应的示例。
一、题目解析与示例1. 求解整数平方根题目描述:编写一个程序,求解一个给定整数n的平方根(结果取整)。
解析:本题可以使用二分查找的思想来解决。
首先,确定搜索范围,即左边界left = 0,右边界right = n。
然后,在[left, right]的区间内迭代查找,直到找到一个整数i,使得i * i大于等于n,此时i-1就是所求整数平方根。
示例代码:```#include <iostream>using namespace std;int squareRoot(int n) {int left = 0;int right = n;int result;while (left <= right) {int mid = left + (right - left) / 2;if (mid * mid <= n) {result = mid;left = mid + 1;} else {right = mid - 1;}}return result;}int main() {int n;cout << "请输入一个整数:";cin >> n;cout << "平方根为:" << squareRoot(n) << endl; return 0;}```2. 统计字符串中某个字符的个数题目描述:编写一个程序,统计给定字符串中某个字符出现的次数。
解析:本题可以使用循环遍历字符串的每个字符,然后判断是否与给定的字符相等。
如果相等,则计数器加1。
以下是一些常见的数据结构代码题,以及相应的解决方案。
反转链表问题描述:给定一个链表,反转链表并返回新的头节点。
解决方案:使用迭代或递归方法反转链表。
迭代方法需要维护一个指向当前节点和前一个节点的指针,遍历链表并更新指针。
递归方法需要递归到链表的末尾,然后逐步返回并更新节点指针。
二叉树的最大深度问题描述:给定一个二叉树,找出其最大深度。
解决方案:使用递归或迭代方法遍历二叉树,并计算每个节点的深度。
递归方法在每个节点处递归计算左子树和右子树的最大深度,并返回它们的最大值加1。
迭代方法使用队列或栈来遍历二叉树,并记录每个节点的深度。
合并两个有序链表问题描述:将两个升序链表合并为一个新的升序链表并返回。
新链表是通过拼接给定的两个链表的所有节点组成的。
解决方案:使用迭代或递归方法合并两个有序链表。
迭代方法维护一个指向新链表的头节点和尾节点的指针,并使用两个指针分别遍历两个有序链表,将较小的节点添加到新链表中。
递归方法在每个节点处递归调用合并函数,并将较小的节点作为当前节点,较大的节点的子节点作为递归参数传递给下一层递归。
二叉搜索树的最小绝对差问题描述:给定一个所有节点值都是整数的二叉搜索树,返回一个节点,其值与该树中其他节点的值的最小绝对差最小。
解决方案:使用中序遍历遍历二叉搜索树,计算相邻节点之间的绝对差并找到最小值。
在遍历过程中,记录前一个节点的值和当前最小绝对差,比较当前节点与前一个节点之间的绝对差并更新最小绝对差和结果节点。
最长回文子串问题描述:给定一个字符串s,找到s 中最长的回文子串。
你可以假设s 的最大长度为1000。
解决方案:使用动态规划或中心扩展算法找到最长回文子串。
动态规划方法使用一个二维数组dp[i][j] 表示s[i:j+1] 是否是回文串,并使用递推关系dp[i][j] = dp[i+1][j-1] and s[i] == s[j] 计算dp 数组。
中心扩展算法从每个字符和字符间隙开始向两侧扩展,记录扩展的最大长度和起始位置。
专升本c语言真题及答案解析大全C语言真题及答案解析大全随着我国高等教育的普及,越来越多的人选择通过的方式提升自己的学历。
而其中,C语言作为计算机专业的入门语言,是不可或缺的一门课程。
为了帮助考生更好地备考C语言考试,下面将分享一些历年的真题及答案解析。
一、基础部分1. 下面程序的输出结果是什么?#include <stdio.h>int main(){int a = 10;if(a = 0){printf("Hello ");}else{printf("World ");}return 0;}答案解析:该题主要考察的是条件判断语句。
在if语句中,应该使用比较运算符“==”而不是赋值运算符“=”。
因此,if(a = 0)应该修改为if(a == 0)。
正确的输出结果是“Hello”。
2. 下面程序的输出结果是什么?#include <stdio.h>int main(){char str[] = "Hello";char *p = str;printf("%c\n", ++*p++);return 0;}答案解析:该题主要考察的是指针和字符串的操作。
首先,++*p 表示先对指针p所指向的字符进行自增操作,即‘H’变为‘I’。
然后,*p++表示取指针p所指向的字符,并将p后移一个位置,即p指向‘e’。
因此,输出结果为“I”。
二、进阶部分1. 请写出实现快速排序算法的C语言程序。
答案解析:快速排序是常用的排序算法之一。
以下是一个简单的快速排序算法的实现:#include <stdio.h>void quickSort(int arr[], int left, int right){if(left >= right){return;}int i = left;int j = right;int key = arr[left];while(i < j){while(i < j && arr[j] >= key) {j--;}arr[i] = arr[j];while(i < j && arr[i] <= key) {i++;}arr[j] = arr[i];}arr[i] = key;quickSort(arr, left, i - 1);quickSort(arr, i + 1, right);}int main(){int arr[] = {5, 3, 8, 2, 1, 9, 4, 6, 7}; int len = sizeof(arr) / sizeof(arr[0]); quickSort(arr, 0, len - 1);for(int i = 0; i < len; i++){printf("%d ", arr[i]);}return 0;}该程序实现了快速排序算法,通过递归的方式将数组划分为更小的子数组,并将子数组按照规则进行排序,最后得到一个有序的数组。
计算机二级c考试题型答案大全计算机二级C考试题型涵盖了选择题、填空题、编程题等多种类型,以下是部分题型的答案解析,供考生参考。
1. 选择题在选择题部分,考生需要从四个选项中选择一个正确答案。
例如,对于以下题目:“C语言中,以下哪个选项是合法的变量名?”A. 2variableB. variable2C. variable-2D. variable$2正确答案是B。
在C语言中,变量名必须以字母或下划线开头,不能以数字开头,且不能包含特殊字符。
2. 填空题填空题要求考生根据题目要求填写正确的代码或概念。
例如:“在C语言中,用于定义一个整型变量并初始化为10的语句是____。
”正确填写为:“int variable = 10;”。
3. 编程题编程题要求考生编写一段代码来解决特定的问题。
例如:“编写一个函数,计算并返回两个整数的和。
”考生需要编写如下函数:```cint add(int a, int b) {return a + b;}```该函数接受两个整数参数,并返回它们的和。
4. 阅读程序写结果题这类题目要求考生阅读给定的程序代码,并写出程序的输出结果。
例如:“阅读以下程序,并写出程序的输出结果:```c#include <stdio.h>int main() {int x = 5;printf("%d", x);return 0;}```程序的输出结果为:5。
5. 程序改错题程序改错题要求考生找出并修正程序中的错误。
例如:“以下程序中存在一个错误,请找出并修正它:```c#include <stdio.h>int main() {int x = 5;print("%d", x); // 错误行return 0;}```错误在于使用了错误的函数名print,应改为printf。
正确的代码为:```c#include <stdio.h>int main() {int x = 5;printf("%d", x);return 0;}```以上是计算机二级C考试中常见的题型及其答案解析,考生在备考时应多做练习,熟悉各种题型的解题方法。
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 100struct date{int year;int month;int day;};struct product{char p_name[20];long int p_num[7];char size[4];struct date in_date;long int max_s;long int min_s;long int real_s;struct product *next;}pro[N];void enter();void search();void searchmenu();void search_by_name();void search_by_date();void search_by_nameandsize();void insert();void lend();void print();void save(int n);int load();void input(int i);void printf_data(int i) ;void printf_back();void menu() /***************菜单*************/ {int n,w1; /****变量p保存选择菜单数字,w1判断输入数字对应菜单****/do{puts("\n\t\t*****************菜单********************\n\n");puts("\t\t\t1.信息输入");puts("\t\t\t2.信息查询");puts("\t\t\t3.信息插入");puts("\t\t\t4.领货");puts("\t\t\t5.信息打印");puts("\t\t\t6.退出");puts("\n\n\t\t***************************************\n");puts("\t\t****************************** 陈文\n");puts("\t\t********************************2013.01.05\n");printf("请选择[1-6]:[ ]\b\b");scanf("%d",&n);if(n<1||n>6){w1=1;getchar();}else w1=0;}while(w1==1);switch(n) /***********选择功能***********/ {case 1:enter();break; /***********信息输入模块***********/ case 2:search();break; /***********信息查询模块***********/ case 3:insert();break; /***********信息添加模块***********/ case 4:lend();break; /***********物资领取模块***********/ case 5:print();break; /***********信息打印模块***********/ case 6:exit(0); /***********退出模块***********/}}main() /***********主函数***********/ {menu();}/***********信息输入模块***********/void enter(){int i,n;printf("\n产品种类数量(0-%d)?:",N-1);scanf("%d",&n);printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("输入第%d种产品数据:\n",i+1);input(i);}if(i!=0)save(n);printf_back();}/***********信息查询模块***********/void searchmenu(){int n,w2;do{puts("\n\t\t*****************查询********************\n\n");puts("\t\t\t1.按名称查询");puts("\t\t\t2.按日期查询");puts("\t\t\t3.按名称规格查询");puts("\t\t\t4.返回");puts("\n\n\t\t***************************************\n");printf("请选择[1-4]:[ ]\b\b");scanf("%d",&n);if(n<1||n>4){w2=1;getchar();}else w2=0;}while(w2==1);switch(n) /***********选择功能***********/ {case 1:search_by_name();break; /***********按名称查询***********/ case 2:search_by_date();break; /***********按日期查询***********/ case 3:search_by_nameandsize();break; /*********按名称规格查询*********/ case 4:getch();menu(); /***********退出模块***********/ }}void search(){searchmenu();}/***********按名称查询***********/void search_by_name(){int j,n,m=0;char a[20];n=load();printf("\n请输入产品名称!\n名称:");scanf("%s",a);for(j=0;j<n;j++)if(strcmp(a,pro[j].p_name)==0){m++;printf_data(j);}printf("\n找到%d种产品!",m);getch();menu();}/***********按日期查询***********/struct s_date{int year;int month;int day;}s;void search_by_date(){int j,n,m=0;n=load();printf("\n输入你想查找的产品日期!\ndate:");scanf("%d.%d.%d",&s.year,&s.month,&s.day);for(j=0;j<n;j++)if((s.year==pro[j].in_date.year)&&(s.month==pro[j].in_date.month)&&(s.day==pro[j].in_date.da y)){m++;printf_data(j);}printf("\n找到当天的此产品%d!",m);getch();menu();}/*********按名称规格查询*********/void search_by_nameandsize(){int j,n,m=0;char a[20],b[4];n=load();printf("\n输入你想找的产品名称!\n名称:");scanf("%s",a);printf("\n输入你想找的产品库存量!\n库存量:");scanf("%s",b);for(j=0;j<n;j++)if((strcmp(a,pro[j].p_name)==0)&&(strcmp(b,pro[j].size)==0)){m++;printf_data(j);}printf("找到%d种产品!",m);getch();menu();}/***********信息添加模块***********/void insert(){int n,c;n=load();puts("\n输入一个数据:\n");do{input(n);printf_data(n);printf("\n\n是否确信?\n1).是\n2).取消并重试\n3).返回不保存[ ]\b\b");scanf("%d",&c);if(c==1){save(n+1);printf_back();}else if(c!=2)menu();}while(c==2);}/***********物资领取模块***********/struct one_pro{char p_name[20];char size[4];struct date one_date;long int total;struct one_pro *next;}check;void lend(){int j,n;n=load();printf("\n请检查你想取的产品的信息!");printf("\n名称(1-20letter) 库存量(1-4letter) 日期amount\n");scanf("%s%s%d.%d.%d%d",&check.p_name,&check.size,&check.one_date.year,&check.one_dat e.month,&check.one_date.day,&check.total);for(j=0;j<n;j++)if((strcmp(check.p_name,pro[j].p_name)==0)&&(strcmp(check.size,pro[j].size)==0)&&(check.on e_date.year==pro[j].in_date.year)&&(check.one_date.month==pro[j].in_date.month)&&(check.o ne_date.day==pro[j].in_date.day)&&(check.total<=pro[j].real_s)){pro[j].real_s-=check.total;printf_data(j);save(n);printf_back();}else printf("数据错误!");}/***********信息打印模块***********/void print(){int i,n;n=load();for(i=0;i<n;i++)printf_data(i);getch();menu();}/***********公共函数*************/#include<stdio.h>void save(int n) /***********保存函数**************/{FILE*fp;int k;if((fp=fopen("pro.dat","wb"))==NULL){printf("\n无法打开文件!\n");}for(k=0;k<n;k++)if(pro[k].real_s!=0)if(fwrite(&pro[k],sizeof(struct product),1,fp)!=1)printf("文件书写错误!\n");fclose(fp);}int load() /************加载函数*************/{FILE*fp;int k;if((fp=fopen("pro.dat","rb"))==NULL){printf("\n无法打开文件!\n");return NULL;}for(k=0;!feof(fp);k++)fread(&pro[k],sizeof(struct product),1,fp);fclose(fp);return(k-1);}void input(int i) /************输入一种产品信息***********/ {printf("\n名称(1-20letter):");scanf("%s",&pro[i].p_name);printf("\n编号(1-7num):");scanf("%d",&pro[i].p_num);printf("\n库存量(1-4letter):");scanf("%s",&pro[i].size);printf("\n日期:");scanf("%d.%d.%d",&pro[i].in_date.year,&pro[i].in_date.month,&pro[i].in_date.day);printf("\namount[min-real-max]:");scanf("%d-%d-%d",&pro[i].min_s,&pro[i].real_s,&pro[i].max_s);}void printf_data(int i) /************输出信息函数***********/ {printf("\n名称\t\t编号\t规格\t日期\t\tmin-real-max\n");printf("%s\t%d\t%s\t%d.%d.%d\t%d-%d-%d",pro[i].p_name,pro[i].p_num,pro[i].size,pro[i].in_da te.year,pro[i].in_date.month,pro[i].in_date.day,pro[i].min_s,pro[i].real_s,pro[i].max_s);}void printf_back(){printf("\n\n请按任意键回主菜单!\n"); getch();menu();}。