C程序设计编程题
- 格式:doc
- 大小:142.00 KB
- 文档页数:22
C语言程序设计试题及参考答案精心整理c语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(d)a、一个c源程序可以由一个或多个函数共同组成b、一个c源程序必须涵盖一个main函数c、c程序的基本共同组成单位就是函数d、在c程序中,注释说明只能位于一条语句的后面2、以下四个选项中,就是不合法的用户标识符的选项就是(b)a、abcb、12acc、sund、a3、建有语句inta=4;则继续执行了语句a+=a-=a*a后,变量a的值就是(a)a、-24b、0c、4d、164、以下运算符中优先级最低的就是(b)a、a、inputx、y、z;b、scanf(“%d%d%d”,&x,&y,&z);c、scanf(“%d%d%d”,x,y,z);d、read(“%d%d%d”,&x,&y,&z);9、假定从键盘输入23456,下面程序的输出结果是:(c)voidmain(){intm,n;scanf(“-=”,&m,&n);printf(“m=%dn=%d\\n”,m,n);}a、m=23n=45b、m=234n=56c、m=23n=456d、语句有错误10、若运转时,给变量x输出12,则以下程序的运转结果就是(a)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\\n”,y);}精心整理a、0b、22c、12d、1011、c语言中while和do-while循环的主要区别(a)a、do-while的循环体至少继续执行一次b、while的循环控制条件比do-while的循环控制条件严格c、do-while允许从外部转到循环体内d、do-while的循环体不能是复合语句12、以下对二维数组的恰当表明的语句就是(c)a、inta[3][]b、floata(3,4)c、doublea[3][4]d、floata(3)(4)13、以下程序的输出结果是(c)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]);}a、1,5,9b、1,4,7c、3,5,7d、3,6,914、以下能对一维数组a进行正确初始化的语句是(c)a、inta[10]=(0,0,0,0,0);b、inta[10]={};c、inta[10]={0};d、inta[10]={10*1};15、以下程序执行后的输出结果是:(a)intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\\n”,z,y,x);}a、30,20,10b、10,20,30c、10,30,50d、10,30,4016、以下说法正确的是(a)如果在一个函数中的复合语句中定义了一个变量,则该变量a、只在该复合语句中有效b、在该函数中有效c、在本程序范围内有效d、为非法变量17、以下函数调用语句中含有的实参个数为(b)func((exp1,exp2,exp3),(exp4,exp5));a、1b、2c、4d、518、在c语言程序中,以下观点恰当的就是(b)。
c程序设计试题及答案一、选择题(每题2分,共20分)1. 下列选项中,哪一个是C语言的标准输入输出库函数?A. printf()B. scanf()C. getchar()D. A和B答案:D2. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. return答案:A3. 以下哪个语句用于结束C程序的执行?A. break;B. continue;C. exit();D. return;答案:C4. C语言中,哪个类型用于表示字符?A. charB. stringC. characterD. letter答案:A5. 在C语言中,以下哪个运算符用于判断两个值是否相等?A. ==B. !=C. <D. >答案:A6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +D. -答案:A7. 在C语言中,哪个关键字用于定义一个数组?A. arrayB. listC. vectorD. None of the above答案:D8. 下列哪个选项是C语言中的循环结构?A. ifB. whileC. switchD. case答案:B9. 在C语言中,哪个关键字用于声明一个变量为静态存储类别?A. staticB. autoC. registerD. extern答案:A10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D二、填空题(每空1分,共10分)1. 在C语言中,使用________关键字可以定义一个结构体。
答案:struct2. 一个C语言程序的执行从________函数开始。
答案:main3. 在C语言中,________运算符用于取反一个逻辑值。
答案:!4. 一个C语言数组的索引是从________开始的。
答案:05. 使用________函数可以在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. 以下______是正确的转义字符。
计算机程序设计基础(C语言)编程练习题及参考答案1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>main(){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);}2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14 <stdio.h>main(){ float r ,s , l;printf("please input r:\n");scanf("%f”,&r);if (r>=0){s=pi*r*r;l=2*i*r ;printf("the area is %f\n",s);printf("the circumference is %f\n",l);}elseprintf("input error!\n");}3、函数y=f(x)可表示为:2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)编程实现输入一个x值,输出y值。
main(){int x,y;scanf(“%d”,&x);If(x<0)y=2*x+1;If(x>0)y=2*x-1;If(x==0) y=0;prin tf(“%d”,y);}4、编写一个程序,从4个整数中找出最小的数,并显示此数。
main( ){int a,b,c,d,t;scanf (“%d,%d,%d,%d ”,&a,&b,&c,&d);if (a>b){t=a; a=b; b=t;}if (a>c){t=a; a=c; c=t;}if (a>d){t=a; a=d; d=t;}pri ntf (“m in = %d \n”,a);}5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。
C语言程序设计习题(编程类)1、从键盘输入任意的字符,按下列规则进行分类计数。
第一类'0','1','2','3','4','5','6','7','8','9'第二类'+','-','*','/','%','='第三类其它字符当输入字符'\'时先计数,然后停止接收输入,打印计数的结果。
参考答案:#include <stdio.h>void main( ){ int class1, class2, class3;char ch;class1=class2=class3=0;/* 初始化分类计数器*/do{ ch=getch( );switch(ch){ case '0': case '1': case '2': case '3': case '4':case '5': case '6': case '7': case '8': case '9':class1++;break;/* 对分类1计数*/case '+': case '-': case '*': case '/': case '%': case '=':class2++;break;/* 对分类2计数*/default: class3++;break;/* 对分类3计数*/}}while (ch!= '\\');/* 字符'\'在C程序中要使用转义符'\\' */printf("class1=%d, class2=%d, class3=%d\n", class1, class2, class3);}2、从键盘输入十个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。
大学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语言中,________关键字用于声明一个结构体。
103f程序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;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
c程序设计考试题目及答案一、选择题(共10题,每题2分,共20分)1. C语言中,以下关键字不属于标准C语言关键字的是:A. forB. ifC. switchD. class答案:D2. 定义一个数组 int arr[5]={1,2,3,4,5},则 arr[2] 的值是:A. 2B. 3C. 4D. 5答案:C3. 在C语言中,以下哪个运算符用于求两个整数相除后的余数:A. %B. /C. ^答案:A4. 下列选项中,不属于C语言中的控制流语句的是:A. whileB. continueC. gotoD. delete答案:D5. 下列哪个函数用于输出到标准输出设备(默认为显示器):A. getchar()B. scanf()C. puts()D. fopen()答案:C6. 在C语言中,以下哪个运算符优先级最高:A. +B. =C. <<答案:C7. 在C语言中,以下哪个关键字用于定义新的结构体类型:A. typedefB. structC. voidD. extern答案:A8. 下列选项中,属于C语言中的数据类型的是:A. integerB. characterC. floatD. boolean答案:C9. C语言中,以下哪种循环结构可以确保至少执行一次循环体:A. for循环B. while循环C. do...while循环D. if...else语句答案:C10. 函数原型声明的作用是:A. 定义函数的实现B. 声明函数的返回值类型C. 声明函数的参数类型和个数D. 控制函数的调用顺序答案:C二、编程题(共2题,每题40分,共80分)题目1:请编写一个C程序,实现以下功能:1. 定义一个结构体类型Student,包含以下成员:- char name[20]:表示学生姓名- int age:表示学生年龄2. 定义一个函数inputStudent,用于输入学生信息,函数原型如下: - void inputStudent(Student *student)3. 定义一个函数outputStudent,用于输出学生信息,函数原型如下: - void outputStudent(Student student)4. 在主函数中通过调用inputStudent和outputStudent函数,实现输入一个学生的信息并输出。
C程序设计编程题1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>main(){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);}2. 输入一个圆半径(r),当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14 <stdio.h>main(){ float r ,s , l;printf("please input r:\n");scanf("%f”,&r);if (r>=0){s=pi*r*r;l=2*i*r ;printf("the area is %f\n",s);printf("the circumference is %f\n",l);}elseprintf("input error!\n");}3、函数y=f(x)可表示为:2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)编程实现输入一个x值,输出y值。
main(){int x,y;scanf(“%d”,&x);If(x<0)y=2*x+1;If(x>0)y=2*x-1;If(x==0) y=0;printf(“%d”,y);}4、编写一个程序,从4个整数中找出最小的数,并显示此数。
main( ){int a,b,c,d,t;scanf (“%d,%d,%d,%d ”,&a,&b,&c,&d);if (a>b){t=a; a=b; b=t;}if (a>c){t=a; a=c; c=t;}if (a>d){t=a; a=d; d=t;}printf (“min = %d \n”,a);}5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。
main(){int x,y;scanf("%d",&x);if (x<0) y=1;else if(x==0) y=5;else y=3;printf("x=%d,y=%d\n",x,y);}6.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)main(){float max(float x,float y);float a,b,m;scanf("%f,%f",&a,&b);m=max(a,b);printf("Max is %f\n",m);}float max(float x,float y){float temp;if (x<y){temp=x;x=y;y=temp;}return(x);}7、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。
#include <stdio.h>main(){ int yourAge, hisAge;printf("Please enter your age:");scanf("%d", &yourAge); /*输入你的年龄yourAge*/printf("Please enter your friend's age:");scanf("%d", &hisAge); /*输入你朋友的年龄hisAge*/if (yourAge >= hisAge){printf("You are older! Your age is = %d\n", yourAge);}if (hisAge > yourAge){printf("Your friend is older! HisAge age is = %d\n", hisAge);}}8、键盘输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”#include “stdio.h”main( ){int a,b,c;printf(“please input a and b\n”);scanf (%d,%d”,&a,&b);printf(“please input the answer for a+b\n”);scanf (%d”,&c);if (c==a+b)printf(“right\n”);elseprintf(“error\n”);}9. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:⎪⎩⎪⎨⎧≥-≤=小时小时小时元每小时元每小时元费用505010105.2330 要求当输入每月上网小时数,显示该月总的上网费用(6分)main(){ int hour;float fee;printf(“please input hour:\n ”);scanf(“%d ”,&hour);if(hour<=10)fee=30;else if(hour>=10&&hour<=50)fee=3*hour;else fee=hour*2.5;printf(“The total fee is %f ”,fee);}10.神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0. 4元。
输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。
main(){float a,x,y;printf(“\n 请输入您的话费:”);scanf(“%f,”,&a);x= 0.6*a;y=50+0.4*a;printf (“神州行话费为: %f\n”,x);printf (“全球通话费为: %f\n”,y);if (x>=y)printf(“建议使用全球通”);else printf(“建议使用神州行);}11.个人所得税计算,应纳税款的计算公式如下:输入某人的收入,计算出应纳税额及实际得到的报酬。
(7分)(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)#include “stdio.h”main(){int grade;float income,tax,money;printf(“please input your income\n”);scanf (“%f”,&income);if (income<0)printf(“the input is error”);else{ grade=(int)income/1000;switch(grade){ case 0 : tax=0;break;case 1 : tax=(income-1000)*0.05;break;case 2 : tax=50+(income-2000)*0.1;break;case 3 :case 4 :case 5 : tax=150+(income-3000)*0.15;break;default: tax=600+(income-6000)*0.2;}money=income-tax;printf(“\n tax=%f, money=%f”,tax, money);}}12.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
#include <stdio.h>main(){int data;char grade;printf("Please enter the score:");scanf("%d”, &data);switch(data/10){ case 10:case 9 : grade=’A’; break;case 8: grade=’B’; break;case 7: grade=’C’; break;case 6: grade=’D’; break;default: grade=’E’;}printf("the grade is %c”,grade);}*13. 编程设计一个简单的计算器程序。
从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果#include <stdio.h>main(){ int data1, data2; /*定义两个操作符*/char op; /*定义运算符*/printf("Please enter the expression:");scanf("%d%c%d", &data1, &op, &data2); /*输入运算表达式*/switch(op) /*根据输入的运算符确定要执行的运算*/ { case '+': /*处理加法*/printf("%d + %d = %d \n", data1, data2, data1 + data2);break;case '-': /*处理减法*/printf("%d - %d = %d \n", data1, data2, data1 - data2);break;case '*': /*处理乘法*/printf("%d * %d = %d \n", data1, data2, data1 * data2);break;case '/': /*处理除法*/if (0 == data2) /*为避免出现溢出错误,检验除数是否为0*/printf("Division by zero!\n");elseprintf("%d / %d = %d \n", data1, data2, data1 / data2);break;default:printf("Unknown operator! \n");}}14. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。