程序设计题
《C语言程序设计》练习题及答案
《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
大学程序设计大赛试题答案
大学程序设计大赛试题答案一、选择题1. 在C++中,下列哪个关键字用于定义常量?A. staticB. volatileC. constD. mutable答案:C2. 以下关于Python中的列表(list)说法正确的是:A. 列表是不可变的序列类型。
B. 列表不支持添加元素。
C. 列表可以包含不同类型的元素。
D. 列表的元素不能被删除。
答案:C3. 在Java中,关于异常处理的描述,以下哪项是正确的?A. try块中必须跟catch块。
B. catch块可以捕获所有类型的异常。
C. finally块可以用于执行清理操作,无论是否发生异常都会执行。
D. throw关键字用于声明一个可能抛出的异常类型。
答案:C4. 以下关于数据库事务的描述,哪项是错误的?A. 事务具有原子性。
B. 事务具有一致性。
C. 事务具有隔离性。
D. 事务不具备持久性。
答案:D5. 在HTML5中,用于创建交互式内容的标签是:A. <canvas>B. <svg>C. <iframe>D. <audio>答案:A二、填空题1. 在JavaScript中,可以使用________函数来获取字符串的长度。
答案:length2. 在Python中,使用________关键字可以遍历字典中的所有键。
答案:keys()3. SQL语句中,用于删除表中所有记录但保留表结构的命令是________。
答案:TRUNCATE TABLE4. 在C语言中,使用________关键字可以定义一个指针变量。
答案:*(星号)5. 正则表达式中,\d表示匹配一个________字符。
答案:数字三、编程题1. 题目描述:编写一个程序,输入一个整数n,输出n的阶乘。
C++代码示例:```cpp#include <iostream>using namespace std;int factorial(int n) {if (n <= 1) {return 1;} else {return n * factorial(n - 1);}}int main() {int n;cin >> n;cout << factorial(n) << endl;return 0;}```2. 题目描述:编写一个Python程序,实现一个简单的计算器,支持加、减、乘、除功能。
c程序设计考试题
c程序设计考试题C程序设计考试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量表示方式?A. 0x1234LB. 1234.0C. 1234D. 0x12342. 下列哪个是C语言中的合法标识符?A. 2variableB. variable-C. variable2D. variable#3. 以下哪个语句可以正确地交换两个变量的值?A. a = a + b;B. a = a - b;C. a = a / b;D. a = b; b = a;4. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!" "Hello, World!"D. {"Hello, World!"}5. 以下哪个函数可以用于计算数组中元素的总和?A. sum()B. count()C. average()D. find()6. 以下哪个是C语言中的控制语句?A. ifB. whileC. switchD. All of the above7. 在C语言中,以下哪个是正确的函数声明?A. int function(int a, int b);B. int function(a, b);C. int function(int a, b);D. function(int a, int b);8. 以下哪个是C语言中定义结构体的关键字?A. structB. unionC. enumD. typedef9. 在C语言中,以下哪个是正确的指针声明?A. int *pointer;B. pointer int;C. int pointer[];D. int *pointer[10];10. 下列哪个是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[5] = 1, 2, 3, 4, 5;C. int arr[] = {1, 2, 3, 4, 5};D. All of the above二、简答题(每题10分,共20分)1. 解释C语言中的指针和引用的区别。
程序设计题目集
sum=sum+s[i].score; } average=sum/n; printf("%.2f\n", average); } 23.c程序填空。建立一个通讯录的结构记录,包括姓名、生日、电话号 码。输入n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序依次 输出其信息。 例: 输入 3 zhang 19850403 13912345678 wang 19821020 0571-88018448 qian 19840619 13609876543 输出 wang 19821020 0571-88018448 qian 19840619 13609876543 zhang 19850403 13912345678
2 10 99
(n=2)
输出:
1,2,9,9,
10,99,
#include "stdio.h"
int main( )
{ int ri,repeat;
int a[100],i,m,n;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
count=0;
for(i=0;i<n;i++){
if(i==0&&r[i]>r[i+1])
count++;
else if(i==n-1&&r[i]>r[i-1])
count++;
else if(r[i]>r[i+1]&&r[i]>r[i-1])
大学c语言程序设计考试试题
大学c语言程序设计考试试题一、单项选择题(每题2分,共20分)1. C语言中,一个整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节2. 下列哪个关键字用于定义一个类?A. structB. classC. unionD. enum3. 在C语言中,用于计算两个浮点数平均值的函数是:A. pow()B. sqrt()C. fabs()D. average()4. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. getchar()D. readline()5. 在C语言中,字符串的结束标志是:A. 'E'B. '\n'D. '\0'6. 下列哪个是C语言中的合法标识符?A. 2classB. class2C. class+2D. class=27. C语言中,数组的下标默认从哪个数字开始?A. 0B. 1C. -1D. 随机数8. 在C语言中,sizeof运算符的作用是:A. 返回变量的类型B. 返回变量的值C. 返回变量的内存大小D. 返回变量的地址9. 下列哪个不是C语言中的控制流语句?A. ifB. forC. whileD. switch10. C语言中,函数的返回值类型定义在函数名的:A. 前面B. 后面C. 上面D. 下面二、填空题(每空3分,共30分)11. 在C语言中,使用________运算符可以实现逻辑与功能。
12. 当需要频繁修改数组中的元素时,应使用________类型的数组,以提高程序的运行效率。
13. C语言中,函数________可以用来获取字符串的长度,但不包括字符串结束标志'\0'。
14. 在C语言中,________关键字用于声明一个函数。
15. 一个C语言程序的执行是从________函数开始的。
16. 在C语言中,________关键字用于声明一个结构体。
程序设计题库及答案详解
程序设计题库及答案详解一、选择题1. 下列哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 过程化答案:D2. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A3. 以下哪个是Python中的循环结构?A. forB. whileC. both A and BD. none of the above答案:C二、填空题1. 程序设计中的________是用来定义数据的属性和方法的集合。
2. 在C语言中,________关键字用于声明一个函数。
答案:void 或者 int(根据函数返回类型而定)3. 在JavaScript中,________方法用于将字符串转换为数字。
答案:parseInt 或 parseFloat(根据转换类型而定)三、简答题1. 请简述什么是递归函数,并给出一个简单的递归函数示例。
答案:递归函数是指在函数内部调用自身的函数。
递归函数通常用于解决可以分解为相同问题的子问题的问题。
以下是一个计算阶乘的递归函数示例:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```2. 解释什么是堆栈,并说明它们在程序设计中的应用。
答案:堆栈是两种不同的数据结构。
堆是一种优先队列,其中最大或最小元素可以在对数时间内被找到。
栈是一种遵循后进先出(LIFO)原则的数据结构。
在程序设计中,堆栈广泛应用于内存管理、函数调用、表达式求值、回溯算法等领域。
四、编程题1. 编写一个函数,实现字符串的反转。
```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组nums,请找出数组中最长递增子序列的长度。
答案:```pythondef lengthOfLIS(nums):if not nums: return 0dp = [1] * len(nums)for i in range(1, len(nums)):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)```五、案例分析题1. 描述一个场景,其中使用多线程可以提高程序的效率,并解释为什么。
程序设计经典100题
程序设计经典100题【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
python程序设计100题
python程序设计100题1.打印"Hello, World!"2.计算2 + 33.计算10 * 54.计算25 / 45.计算10 ** 26.将字符串"Hello" 转换为小写7.将字符串"Hello" 转换为大写8.将字符串"Hello" 反转9.将字符串"Hello" 中的第一个字符替换为"a"10.将字符串"Hello" 中的所有字符替换为"a"11.检查一个数字是否为偶数12.检查一个数字是否为奇数13.将一个数字的位数相加14.将一个数字的四舍五入到最接近的整数15.将一个数字的四舍五入到最接近的十位数16.将一个数字的四舍五入到最接近的百位数17.将一个数字的四舍五入到最接近的千位数18.检查一个字符串是否为空19.检查一个字符串是否为非空20.将一个字符串中的所有字母转换为大写21.将一个字符串中的所有字母转换为小写22.将一个字符串中的所有单词首字母大写23.将一个字符串中的所有单词反转24.将一个字符串中的所有单词连接在一起,中间用空格分隔25.检查一个列表是否为空26.检查一个列表是否为非空27.将一个列表中的所有元素相加28.将一个列表中的所有元素相乘29.将一个列表中的所有元素相除30.将一个列表中的所有元素取模31.将一个列表中的所有元素平方32.将一个列表中的所有元素立方33.将一个列表中的所有元素开方34.将一个列表中的所有元素对数35.将一个列表中的所有元素自然对数36.将一个列表中的所有元素阶乘37.将一个列表中的所有元素取反38.将一个列表中的所有元素平方根39.将一个列表中的所有元素倒数40.将一个列表中的所有元素绝对值41.检查一个元组是否为空42.检查一个元组是否为非空43.将一个元组中的所有元素相加44.将一个元组中的所有元素相乘45.将一个元组中的所有元素相除46.将一个元组中的所有元素取模47.将一个元组中的所有元素平方48.将一个元组中的所有元素立方49.将一个元组中的所有元素开方50.将一个元组中的所有元素对数51.将一个元组中的所有元素自然对数52.将一个元组中的所有元素阶乘53.将一个元组中的所有元素取反54.将一个元组中的所有元素平方根55.将一个元组中的所有元素倒数56.将一个元组中的所有元素绝对值57.定义一个函数,将两个数字相加并返回结果。
程序设计习题集(带答案)
一、选择题1.结构化程序设计的3种结构是(D)A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构2.以下叙述中正确的是(C)A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点3.C语言中用于结构化程序设计的3种基本结构是(A)A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue4.C语言中最简单的数据类型包括(B)A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型5.若变量已正确定义并赋值,以下符合C语言语法的表达式是(B) A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b6.下列可用于C语言用户标识符的一组是(B)A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof7.C语言中运算对象必须是整型的运算符是(A)A)%=B)/C)=D)<=8.若变量a,i已正确定义,且i已正确赋值,合法的语句是(B)A)a= =1B)++i;C)a=a++=5;D)a=int(i);9.已知int t=0;while (t=1){...}则以下叙述正确的是(B)A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对10.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是(B) A)10<回车>22<回车>33<回车>B)10.0,22.0,33.0<回车>C)10.0<回车>22.0<空格>33.0<回车>D)10<<空格>>22<回车>33<回车>11.有如下程序: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)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=212.有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是(C)A)1,1,2B)2,2,1C)2,2,2D)2,2,313.有如下程序main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是(C)A)0.000000B)0.250000C)0.500000D)1.00000014.有如下程序:main(){int n=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是(B)A)987B)876C)8765D)987615.在下列选项中,没有构成死循环的是(D)A) int i=100;while(1){i=i 0+1;if(i>100)break;}B) for(;;);C) int k=10000;do{k++;}while(k>10000);D) int s=36;while(s)--s;16.设int x=1,y=1;表达式(!x||y--)的值是(B)A)0B)1C)2D)-117.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D) A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参18.有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是(B)A)编译出错B)9C)21D)9.019.若有以下调用语句,则不正确的fun函数的首部是(D)main(){int a[50],n;…fun(n,&a[9]);…}A)void fun(int m,int x[])B)void fun(int s,int h[41])C)void fun(int p,int *s)D)void fun(int n,int a)20.fseek函数的正确调用形式是(B)A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)21.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(C)A)EOFB)-1C)1D)NULL22.若有说明语句:char c='\72';则变量c (A)A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定23.若有说明 int a[3][4];则a数组元素的非法引用是(D)A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]24.设有以下说明语句struct stu{int a;float b;}stutype;则下面的叙述不正确的是(C)A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名25.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C) A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式26.若运行时给变量x输入12,则以下程序的运行结果是(A)main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)1027.以下说法正确的是(C)A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分28.表达式0x13^0x17的值是(A)A)0x04B)0x13C)0xE8D)0x1729.有以下程序main(){int a=3, b=4;printf("%d\n", (a++)*(b++));}程序运行后的输出结果是 (A)A)12B)15C)16D)2030.下列程序执行后的输出结果是(A)void func(int *a,int b[]){b[0]=*a+6;}main(){int a,b[5];a=0; b[0]=3;func(&a,b);printf("%d\n",b[0]);}A)6B)7C)8D)931.若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是(D)A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是(C)A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,33.以下程序的运行结果是(A)struct date{int year,month,day;}today;main(){printf("%d\n",sizeof(struct date));}A)6B)8C)10D)1234.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是(D) A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point35.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是(B)A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定36.fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是(A)A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'37.若执行下述程序时,若从键盘输入6和8时,结果为(B)main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对38.fscanf函数的正确调用形式是(D)A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);39.下列关于C语言数据文件的叙述中正确的是(D)A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件40.有以下程序void ss(char *s,char t){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是(B)A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd41.struct link{int data;struct link *next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
程序设计基础 题库
程序设计基础题库一.选择题1.()是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2. C语言程序从()开始执行。
(A)程序中第一条可执行语句(B)程序中第一个函数(C)程序中的Main函数(D)包含文件中的第一个函数3、以下说法中正确的是()。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4下列正确的标识符是()。
A.-a1B.a[i]C. a2_ iD. int t5.下列关于C语言的说法错误的是()(A)C程序的工作过程是编辑、编译、连接、运行(B) C语言不区分大小写。
(C) C程序的三种基本结构是顺序、选择、循环(D)C程序从Main函数开始执行6.下列C语言用户标识符中合法的是()(A) 3ax (B) x (C) case (D)-e2 (E) union7.下列四组选项中,正确的C语言标识符是()。
(A)%x (B)a+b (C)a123 (D)1238、下列四组字符串中都可以用作C语言程序中的标识符的是()。
A、print_ 3d db8 aBcB、|\am onee_ half start$it3paiC、str_ 1 Cpp pow whi leD、Pxq My->book| ine#His. Age9.C语言中的简单数据类型包括()。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是()(A)2.5 (B)2 (C)1 (D)311.如果int a=3,b=4;则条件表达式“a<b?a:b”的值是()(A) 3 (B)4 (C)0 (D)112.若int x=2,y=3,z=4 则表达式x<z?y:z的结果是( ).(A)4 (B)3 (C)2 (D) 0 (E)113.C语言中,关系表达式和逻辑表达式的值是()(A)0 (B)0 或1 (C) 1 (D)‘T’或’F’14. 下面()表达式的值为4.(A)11/3 (B)11.0/3 (C)(float) 11/3 (D)(int) (11.0/3+0.5)15.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是()A. b=1.0/aB. b=(float) (1/a)C. b=1/(f loat)aD. b=1/ (a*1.0)16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是()A.1B.4C.4. 333333D.4.617.以下对一维数组a的正确说明是:(A) char a (10); (B) int a[]; (C)intk=5,a[k]; (D) chara[3]={‘a'’b’,’c'};18.以下能对一维数组a进行初始化的语句是: ( )18.以下能对一维数组a进行初始化的语句是:()A. int a[5]=(0, 1,2,3,4,)B. int a(5)={}C. int a[3]={0,1,2}D. int a{5}={10*1}。
程序设计基础试题(附答案)
程序设计基础试题(附答案)程序设计基础复习题一、单选1、一个完整的计算机系统应该包括()A、系统软件和应用软件B、计算机及其外部设备C、硬件系统和软件系统D、系统硬件和系统软件2、“裸机”的概念是指()A、正在进行设计还没有组装好的计算机B、已经组装好但还没有安装任何软件的计算机C、仅安装了操作系统的计算机系统D、安装了文字处理软件但没有安装专用数据处理系统的计算机3、世界上第一台电子数字计算机研制成功的时间是()A、1936年B、1946年C、1956年D、1970年4、CASE的含义是()A、计算机辅助设计B、计算机辅助制造C、计算机辅助教学D、计算机辅助软件工程5、当前广泛使用的微型计算机是()A、第一代B、第二代C、第三代D、第四代6、当代计算机的体系结构称为是()A、冯诺依曼机B、非冯诺依曼机C、图灵机D、比尔盖茨机7、硬盘是()A、输入设备B、输出设备C、存储设备D、计算设备8、下面4句话中,最准确的表述是()A、程序=算法+数据结构B、程序是使用编程语言实现算法C、程序的开发方法决定算法设计D、算法是程序设计中最关键的因素9、计算机能直接执行的语言是()A、机器语言B、汇编语言C、高级语言D、目标语言10、解释程序的功能是()A、将高级语言程序转换为目标程序B、将汇编语言程序转换为目标程序C、解释执行高级语言程序D、解释执行汇编语言程序11、下面4种程序设计语言中,不是面向对象式语言的是()A、JAVAB、Object PascalC、DelphiD、C12、不是C语言的基本数据类型是()A、intB、doubleC、charD、bool13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符()A、/B、%C、*D、++14、数据的逻辑结构分为()A、纯属结构和非线性结构B、顺序结构和非顺序结构C、树型结构和图型结构D、链式结构和顺序结构15、用链表表示纯属表的优点是()A、便于随机存取B、便于插入和删除操作C、花费的存储空间较顺序存储少D、元素的物理顺序与逻辑顺序相同16、栈的最主要特点是()A、先进先出B、先进后出C、两端进出D、一端进一端出17、下面4句结论只有一句是错误的,它是()A、二叉树是树B、二叉树的左右子树的位置可以颠倒C、可以使用二叉树的思想对数值进行排序D、可以采用链表方式存储二叉树18、螺旋模型中包括需求定义、风险分析、工程实惠和评审四个阶段,在开发过程中()A、每个周期都要包括这四个阶段B、每个周期可以包括不同的阶段C、在最后交付使用之前才进行评审D、在项目开始时才需要进行风险分析19、软件工程的出现主要是由于()A、程序设计方法学的影响B、其他工程科学的影响C、软件危机的出现D、计算机的发展20、在软件工程中,软件测试的目的是()A、试验性运行软件B、发现软件错误C、证明软件是正确的D、找出软件中全部错误二、填空题1、世界上最早的高级程序设计语言是()2、计算机按照工作原理进行分类可以分为()和()3、当前计算机的最基本原理采用的是()4、计算机存储器一般分为两级,它们是()和()5、高级语言程序的翻译有两种方式,一种是(),另一种是()6、数据的存储结构可以用()和()7、树型结构的主要特征是结点之间存在着一种层次的关系,数据元素之间的关系是()的关系。
程序设计试题
程序设计试题程序设计试题一题目:计算两个整数的和描述:编写一个程序,计算两个整数的和,并将结果输出到屏幕上。
答案:```pythonnum1 = 10num2 = 20sum = num1 + num2print("两个整数的和为:", sum)```程序设计试题二题目:判断一个数是否为偶数描述:编写一个程序,判断一个输入的整数是否为偶数,并将判断结果输出到屏幕上。
答案:```pythonnum = int(input("请输入一个整数:"))if num % 2 == 0:print(num, "是偶数")else:print(num, "不是偶数")```程序设计试题三题目:闰年判断描述:编写一个程序,判断输入的年份是否为闰年,并将判断结果输出到屏幕上。
答案:```pythonyear = int(input("请输入一个年份:"))if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):print(year, "是闰年")else:print(year, "不是闰年")```程序设计试题四题目:字符串翻转描述:编写一个程序,实现字符串的翻转,并将结果输出到屏幕上。
答案:```pythonstring = input("请输入一个字符串:")reverse_string = string[::-1]print("翻转后的字符串为:", reverse_string)```程序设计试题五题目:九九乘法表描述:编写一个程序,输出九九乘法表。
答案:```pythonfor i in range(1, 10):for j in range(1, i+1):print(j, "*", i, "=", i*j, end="\t")print()```以上是几道常见的程序设计试题的答案,可以根据需要来选择适合的格式使用。
程序设计试题及答案
程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D3. 在C语言中,以下哪个语句用于结束一个循环?A. continueB. breakC. exitD. return答案:B4. 以下哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A5. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 随机数答案:A6. 以下哪个是C语言中的标准输入输出库?A. <iostream>B. <stdio.h>C. <iostream.h>D. <stdio>答案:B7. 在C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. abs()D. sum()答案:D(注意:sum()不是C语言标准库函数,这里假设为自定义函数)8. 以下哪个选项是C语言中的循环结构?A. if-elseB. switch-caseC. for, while, do-whileD. try-catch答案:C9. 在C语言中,以下哪个关键字用于定义一个结构体?A. classB. structC. unionD. enum答案:B10. 下列哪个选项是C语言中的位操作符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共20分)11. 在C语言中,使用________关键字可以定义一个指针。
答案:int* 或者 *(具体类型根据上下文)12. 一个C语言程序的执行从________函数开始。
《程序设计基础》题库(50道)
《程序设计基础》题库(50道)<说明>1、难易程度依次为:易(16道)、较易(38道)、较难(31道)、难(15道)。
2、总共抽8道题,按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道);按题型:顺序(1道)、分支(2道)、单循环(2道)、多循环(1道)、数组(1道)、字符串(1道) 3、考试要求:先画流程图再写程序,理论考试,2个半小时一、顺序结构1、 请定义4个整型变量,并打印输出这4个变量的加、减、乘、除后的结果。
(易)2、 将华氏温度转化成摄氏温度。
公式为:C=(5/9)*(F-32),其中F 为华氏温度,C 为摄氏温度。
请根据给定的华氏温度输出对应的摄氏温度。
(易)3、 根据观察,蟋蟀的名叫频率与温度有关,具体的公式为T=(c+40)/10.其中,c 代表蟋蟀每分钟鸣叫数,T 代表华氏温度。
请根据蟋蟀每分钟的鸣叫数输出相应的华氏温度。
(易)4、 编写程序,读入0~1000的一个整数并将其各位数字之和赋给一个整数,如整数932,各位数字之和为14. (较易)5、 编程实现两个整数交换位置,例如:int x = 6,y = 9,交换后 x = 9,y = 6。
(较易)6、 求空间两点之间的距离。
(提示:空间一点(x,y,z ),可由三个实数来描述)(较易)7、 已知圆的半径,求圆的面积。
(易)8、 已知一个三角形的三边边长分别为a,b,c ,利用海伦公式求三角形的面积。
(较难)海伦公式:9、 求两数平方和的算术根。
(易) 10、 给定一段时间求出它的秒数。
(如计算2小时 17分30秒等于多少秒)(易)11、 某印刷厂3月1日有A4纸500盒,3月2日又买进进100盒,3月3日用掉A4纸存量的三分之二,3月4日又买进A4纸存量的2倍,问该印刷厂3月1日到3月4日期间每天的A4纸存量分别是多少盒?(易)12、 三个小朋友,大毛有糖果50粒,二毛有糖果43粒,三毛有糖果13粒。
C语言程序设计考试试题(附答案)
C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案)一、选择题(共30题,每题2分,共60分)1. 下列哪个是C语言关键字?A. printB. variableC. whileD. calculate答案:C2. 在C语言中,下列哪个是合法的变量名?A. 1_helloB. _worldC. v-ariableD. continue答案:B3. 下列哪个是正确的C语言注释方式?A. // This is a commentB. # This is a commentC. /* This is a comment */D. <!-- This is a comment -->答案:C4. 下列哪个是正确的C语言函数定义格式?A. void addNumbers()B. addNumbers()C. function addNumbers()D. int addNumbers()答案:D5. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```A. 2.5B. 2C. 2.000000D. 5答案:B6. 在C语言中,下列哪个是正确的if语句格式?A. if (x > 4) thenB. if (x > 4) { }C. if x > 4D. if (x > 4)答案:D7. 下列哪个是C语言中的逻辑运算符?A. ++B. &&C. %D. =答案:B8. 在C语言中,下列哪个是正确的for循环格式?A. for (x = 0; x < 5)B. for {x = 0; x < 5; x++}C. for (int x = 0; x < 5; x++)D. for (x = 0; x < 5;)答案:C9. 下列哪个是C语言中的自增运算符?A. ++B. +=C. =D. --答案:A10. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;x *= 3 + 4;printf("%d", x);return 0;}```A. 14B. 20C. 21D. 22答案:C11. 在C语言中,下列哪个是正确的switch语句格式?A. switch (x) {case 1;case 2;break;default;break;}B. switch (x) {case 1:case 2:break;default:break;}C. switch (x) case 1:case 2:break;default:break; D. switch (x) { case 1,case 2,break,default,break,}答案:B12. 下列哪个是C语言中的逗号运算符?A. &&B. !C. ,D. |答案:C13. 在C语言中,下列哪个是正确的数组声明?A. array[5]B. [5] arrayC. array[] = [5]D. int array[5]答案:D14. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 0; i <= 5; i++){printf("%d ", i);if (i == 3)continue;}return 0;}```A. 0 1 2 3 4 5B. 0 1 2 3 4C. 0 1 2 3 4 5 6D. 0 1 2 4 5答案:A15. 下列哪个是C语言中的求余运算符?A. /B. +C. %D. *答案:C16. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 4;int y = 5;if (x > 2 || y < 10){printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 || y < 10D. 4 5答案:A17. 在C语言中,下列哪个是正确的do-while循环格式?A. do (x < 5)B. do {x < 5} whileC. do {x < 5} while (x++)D. do {x < 5;} while (x < 5)答案:D18. 下列哪个是C语言中的逻辑非运算符?A. !B. &&C. <D. =答案:A19. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){if (i % 2 == 0)continue;printf("%d ", i);}return 0;}```A. 1 2 3 4 5 6 7 8 9 10B. 1 3 5 7 9C. 2 4 6 8 10D. 1 2 4 8答案:B20. 下列哪个是C语言中的减法运算符?B. +C. -D. *答案:C21. 在C语言中,下列哪个是正确的数组初始化方式?A. int array[5] = {1, 2, 3}B. array[5] = {1, 2, 3}C. int array[] = {1, 2, 3}D. int array[5] = {1, 2, 3,}答案:C22. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 7;if (x > 2 && y < 10)printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 & y < 10D. x > 2 || y < 10答案:A23. 下列哪个是C语言中的除法运算符?A. /B. +C. %答案:A24. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 7;int y = (x > 5) ? 10 : 5;printf("%d", y);return 0;}```A. 7B. 5C. 10D. 15答案:C25. 在C语言中,下列哪个是正确的while循环格式?A. while (x < 5;)B. while {x < 5;}C. while (x < 5)D. while {x < 5}答案:C26. 下列哪个是C语言中的位运算符?A. ||B. &&C. !D. &答案:D27. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;int y = 3;if (x = y){printf("Equal");}else{printf("Not equal");}return 0;}```A. EqualB. Not equalC. 2D. 3答案:A28. 在C语言中,下列哪个是正确的goto语句格式?A. goto label;B. goto (label);C. gote labelD. go to label答案:A29. 下列哪个是C语言中的加法运算符?A. /B. +C. %D. *答案:B30. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;int result = x % y;printf("%d", result);return 0;}A. 2B. 1C. 3D. 0答案:B二、编程题31. 编写一个C语言程序,在屏幕上输出从1到100的所有偶数。
程序设计题汇总
程序设计题汇总1、产生20个[30,120]上的随机整数放入二维数组a[5][4]中, 求其中的最小值。
2、求一个n位自然数的各位数字的积。
(n 是小于10的自然数)3、求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和例如:求前20项之和的值为32.660259。
4、根据整型形参m,计算如下公式的值:y=1/2+1/4+1/6+...+1/2m 。
例如:若m=9,则应输出:1.4144845、输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。
例如:输入的字符串为ab234$df4,新生成的串为abdf 。
6、将字符串中的小写字母转换为对应的大写字母,其它字符不变。
7、编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。
8、求k!(k〈13),所求阶乘的值作为函数值返回。
(要求使用递归)9、编写函数求表达式的和(n的值由主函数输入)。
1-1/2+1/3-1/4+......+1/m例如:当n=20时,表达式的值为0.668771。
10、编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。
计算公式是:组合数=m!/(n!.(m-n)!)。
要求:m不能小于n,否则应有容错处理。
说明:函数fact(x)的功能是求x!。
11、求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
12、编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
13、用函数实现字符串的复制, 不允许用strcpy()函数。
14、从字符串s中删除指定的字符c。
15、将字符串中的大写字母转换为对应的小写字母,其它字符不变。
16、根据整型形参m,计算如下公式的值:y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)例如:若m=9,则应输出:1.16822917、求出菲波那契数列的前一项与后一项之比的极限的近似值。
程序设计题
程序设计题1. 题目描述设计一个程序用于计算两个整数的乘积。
2. 输入程序需要接受两个整数作为输入,分别表示乘法运算的两个操作数。
3. 输出程序应该输出两个操作数的乘积。
4. 算法设计程序可以使用常规的乘法算法来计算两个整数的乘积。
以下是一个简单的算法描述:1.读取两个整数作为输入。
2.将第一个整数赋值给变量num1,将第二个整数赋值给变量num2。
3.定义变量product并初始化为 0。
4.对于整数i从 1 到num2:–将product增加num1。
5.输出product。
下面是算法的Python实现:num1 = int(input('Enter the first number: '))num2 = int(input('Enter the second number: '))product =0for i in range(1, num2 +1):product += num1print('The product of', num1, 'and', num2, 'is', product)5. 示例输入Enter the first number: 5Enter the second number: 3输出The product of 5 and 3 is 156. 总结这个程序通过从输入中获取两个整数,并使用常规的乘法算法计算它们的乘积。
输出结果是两个整数的乘积。
这个程序可以用来解决简单的乘法问题,并且可以在其他程序中作为子程序使用。
程序设计练习题
程序设计练习题程序设计练习题1、求出102285和126201的最大公约数。
2、求S=1+(1+3)+(1+3+5)+……+(1+3+5+7+……+99)的值3、梅森尼数是指能使2^N-1为素数的数N,求[1,21]范围内最大的梅森尼数?4、已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,……。
试求此数列的前30项的和。
5、一个数如果等于其每一个数字立方之和,则称此数为阿姆斯特朗数。
如407=43+03+73是一个阿姆斯特朗数。
编程序输出[1,2000]之间所有的阿姆斯特朗数。
6、有一个4行5 列的表,位于第M行第N列交叉处的数的值为M+N。
求出表中所有数的和。
7、求出所有符合算式ab*ba=6624的两位数ab(即a*10+b)。
其中a、b是0—9之间的一位整数。
8、求[600,799]内的素数,且要求该素数至少有一位为9。
问:(1) 共有多少个? (2) 其中最大一个数是多大?9、回文数是指正读和反读都一样的自然数、例如,8,121,5445这三个数都是回文数。
试在[10,100000]之内找出既是完全平方数,又是回文数的整数。
求:(1) 共有多少个? (2) 最大一个是多大?10、在[10000,20000]范围内考察个位数字是3的素数,问:(1) 这样的素数有多少个? (2) 其中最大的一个等于几?11、如果一个整数的最高位与最低位相同,次高位与次低位相同,依此类推,则称该数是"对称"的,特别是当整数只有一位数据时,也称它是对称的,例如: 7,11,1221,45654 等均称为"对称"的整数。
计算:(1) 在0~8500范围内有多少个"对称"的整数? (2) 这些对称的整数中,为奇数的个数是多少?12、在[10000,20000]范围内考察个位数字是7的素数,问:(1) 这样的素数有多少个? (2) 其中最大的一个等于几?13、假定一个分数的分子和分母均是两位整数,求满足下列两个条件的该类分数的真分数:①分子的个位数与分母的十位数相同; ②去掉分子的个位数和分母的十位数后,真分数的值不变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、程序设计题1.请编写函数fun,其功能是:找出2*M整型二维数组中最大元素的值,并将此值返回调用函数。
#defineM4#include<stdio.h>intfun(inta[][M]){inti,j,max=a[0][0];/*对二维数组进行遍历*/ for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j]) /*将最大值保存在max中*/max=a[i][j];returnmax;}Voidmain(){intarr[2][M]={5,8,3,45,76,-4,12,82}; printf(“max=%d\n”,fun(arr));分析:本题考查:求数组的最大值,需运用循环语句。
因为数组是二维数组,所以应使用二层加for循环嵌套。
使用for循环语句时需注意循环变量的取值范围。
此类求最大值或最小值问题,可以采用逐个比较的方式,对数组中所有元素遍历一遍,从中找出数组最大值或最小值。
首先定义变量max用来存放数组的第一个元素的值,然后利用for循环逐个找出数组中的元素,并与max比较,如果元素之大于max,则将该值赋予max,循环结束后max的值即为数组最大值,最后将该值返回。
注意:该类题目考查较多,需要掌握逐个比较的方法。
对于m*n二维数组,如果采取逐个查找方法,代码实现如下:for(i=0;i<m;i++)for(j=0;j<n;j++)…2.请编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代。
)π2=1+13+1×23×5+1×2×33×5×7+1×2×3×43×5×7×9+⋯+1×2×…×n3×5×…2n+1程序运行后,若输入精度0.0005,则程序应输出为3.14...#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){doubles=1.0,s1=1.0;intn=1;while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/{s1=s1*n/(2*n+1);/*求多项式的每一项*/s=s+s1;/*求和*/n++;}return2*s;}doublex;printf(“Inputeps:”);scanf(“&1f”,&x);printf(“\neps=%1f,PI=%1f\n”,x,fun(x));}分析:本题考查迭代法求给定多项式的值。
迭代算法是让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令或这些步骤时,都从变量的原值推出它新值。
需要注意变量的数据类型以及赋初值操作。
首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。
从第2项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s表示求和后的结果。
需注意s1和s的初值都为1.0,因为循环变量从第二项开始累加。
3.请编写函数fun,其功能是:求出1至1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
#include<stdlib.h>#include<conio.h>#include<stdio.h>voidfun(int*a,int*n){inti,j=0;for(i=1;i<=1000;i++)//求1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,并放入数组a中if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;//传回满足条件的数的个数} Voidmain(){intaa[1000],n,k;system(“CLS”);fun(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){printf(“%5d,aa[k]);Printf(“\n”);}//一行写9个数elseprintf(“%5d”,aa[k]);}分析:本题考查if语句,用来判断能被7整除或者能被11整除,但是又不能同时被7和11整除的数,在这里充分理解"逻辑与"和"逻辑或"的区别;for循环语句的循环变量用来控制取值范围。
该题需要运用循环判断结构来实现,其中循环语句比较容易,只要确定循环变量的范围即可,下面我们来看判断语句,题目要求找出能被7或11整除,但不能同时被7和11整除的所有整数。
能同时被7和11整除的整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数所以可得出程序中的if()语句。
注意:(i%7==0||i%11==0)两边必须要有小括号。
4.规定输入的字符串中只包含字母和*号。
编写函数fun,其功能是:删除字符串中所有的*号。
编写函数函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:ABCDEFG。
#include<conio.h>#include<stdio.h>voidfun(char*a){inti,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i];//若不是要删除的字符’*’则保留a[j]='\0';//最后加上字符串结束符’\0’} voidmain(){chars[81]printf(“Enterastring:\n”);gets(s);fun(s);printf(“Thestringafterdeleted:\n“);puts(s)}分析:删除字符串中所有*号需要用循环语句遍历字符串,用判断语句判断字符是否为*号,由此可以决定该程序应使用循环判断结构。
用循环操作从字符串的开始往后逐个进行比较,若不是要删除的字符(用if(a[i]!=’*’)来控制)则保留。
变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。
注意下标变量j要从0开始,最后还要加上字符串结束标识’\0’。
5.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。
例如,分别输入下面两个字符串:FirstString--SecondString程序输出:FirstString--SecondString#include<stdlib.h>#include<stdio.h>#include<conio.h>voidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i]!='\0';i++);//求出的i为p1字符串的总长度,包括结束标识符for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];//将p2字符串连在p1字符串后面p1[i]='\0';//在字符串最后加上结束标识符}voidmain() {chars1[81],s2[40];system(“CLS”);printf(“Enters1ands2:\n”);scanf(“%s%s”,s1,s2);printf(“s1=%s\n”,s1);printf(“s2=%s\n”,s2);printf(“Invokefun(s1,s2):\n”);fun(s1,s2);printf(“Afterinvoking:\n”);printf(“%s\n”,s1);}分析:本题考查:不使用字符串函数实现字符串连接操作。
通过for循环语句来完成,不要忘了最后需要加上字符串结束标识'\0'。
本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。
第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。
最后在第1个字符串的结尾加上字符串结束标识’\0’。
6.某学生的记录由学号、8门课程成绩和平均分组成,学号、8门课程成绩已在主函数中给出,编写函数fun,其功能是:求出该学生的平均分,并记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
#include<stdio.h> #defineN8 typedefstruct {charnum[10];doubles[N];doubleave; }STREC;voidfun(STREC*a) {doubleave=0.0; inti;for(i=0;i<N;i++) a->ave=a->ave+a->s[i];a->ave/=N;}voidmain(){STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5 };inti;fun(&s);printf("The%s’sstudentdata:\n",s.num);for(i=0;i<n;i++)printf("%4.1f\n",s.s[i]);printf("\nknave=%7.3f\n",s.ave);}分析:本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。
本题考查自定义形参的相关知识点,程序流程是这样的:在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a,此时,引用成员的方式可以使用指向运算符,即a->ave和a->s[i],当然也可用(*a).ave和(*a).s[i]。
7.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。
#include#include#defineN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h){doubleave=0.0;STREC*p=h->next;//p直接指向”头结点”的下一个结点,即第一个成绩while(p!=NULL){ave=ave+p->s;//求总分数p=p->next;}returnave/N;//返回平均值}STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N){q=(STREC*)malloc(sizeof(STREC));q->s=s[i];i++;p->next=q;p=q;}p->next=0;returnh;}outlist(STREC*h){STREC*p;p=h->next;printf("head");do{printf("->%4.1f",p->s);p=p->next;}while(p!=NULL)printf("\n\n");}voidmain(){doubles[N]={85,76,69,85,91,72,64,87},ave;STREC*h;h=creat(s);outlist(h);ave=fun(h);printf("ave=%6.3f\n",ave);}分析:本题考查:链表的操作,对链表的主要操作有以下几种:建立链表、结构的查找与输出、插入一个结点、删除一个结点。