C语言练习题9

合集下载

C语言程序设计(第3版)何钦铭 颜 晖 第9章 结构

C语言程序设计(第3版)何钦铭 颜 晖 第9章  结构

第9章结构【练习9-1】定义一个能够表示复数的结构类型,一个复数包括实数与虚数两个部分。

解答:struct complex{float real;float imaginary;};【练习9-2】人的出生日期由年、月、日组成,请在例 9-1 中的通讯录结构中增加一个成员:出生日期,用嵌套定义的方式重新定义该结构类型。

解答:struct date{int year;int month;int day;};struct student{int num;char name[10];struct date birthday;int computer,english,math;double average;};【练习9-3】例 9-1 中,如果要计算的是三门课程的课程平均成绩,应该如何改写程序?解答:#include<>struct student{int num;char name[10];int computer,english,math;double average;};int main(void){int i, n;double math_sum,english_sum,computer_sum;struct student s1;printf("Input n:");scanf("%d", &n);printf("Input the student's number, name and course scores:\n"); math_sum=english_sum=computer_sum=0;for(i=1;i<=n;i++){printf("No.%d:",i); scanf("%d%s%d%d%d",&,,&,&,&;math_sum+=;english_sum+=;computer_sum+=;}printf("math_ave:%.2lf\nenglish_ave:%.2lf\ncomputer_ave:%.2lf\n", math_sum/n,english_sum/n,computer_sum/n);return 0;}【练习9-4】定义一个包含 5 名学生信息的结构数组,并对该结构数组的所有元素进行初始化。

c语言编程题库100题

c语言编程题库100题

c语言编程题库100题1. 计算两个整数的和编写一个C程序,接收两个整数作为输入并计算它们的和,并将结果输出。

2. 计算两个整数的差编写一个C程序,接收两个整数作为输入并计算它们的差,并将结果输出。

3. 计算两个整数的乘积编写一个C程序,接收两个整数作为输入并计算它们的乘积,并将结果输出。

4. 计算两个整数的商编写一个C程序,接收两个整数作为输入并计算它们的商,并将结果输出。

5. 判断一个整数是否为偶数编写一个C程序,接收一个整数作为输入并判断它是否为偶数,并将结果输出。

6. 判断一个整数是否为质数编写一个C程序,接收一个整数作为输入并判断它是否为质数(只能被1和自身整除的数),并将结果输出。

7. 计算一个整数的阶乘编写一个C程序,接收一个整数作为输入并计算它的阶乘,并将结果输出。

8. 计算一个整数的平方根编写一个C程序,接收一个整数作为输入并计算它的平方根,并将结果输出。

9. 判断一个字符串是否为回文字符串编写一个C程序,接收一个字符串作为输入并判断它是否为回文字符串(正向和反向读取都相同的字符串),并将结果输出。

10. 排序一个整数数组编写一个C程序,接收一个整数数组作为输入并对其进行排序,并将结果输出。

11. 求两个整数之间的最大公约数编写一个C程序,接收两个整数作为输入并计算它们的最大公约数,并将结果输出。

......(依此类推,共100道题)这是一个C语言编程题库,包含100道不同类型的题目。

你可以选择其中的题目进行练习和实践,通过解决这些问题来提升自己的C语言编程能力。

每道题目都有具体的描述和要求,你可以按照题目要求编写相应的代码,并运行测试。

如果遇到问题,可以参考相关的解法或向他人寻求帮助。

通过不断地练习和学习,你将逐渐掌握C语言的编程技巧和思维方式,提高自己在编程领域中的能力。

祝你编程愉快!。

C语言编程练习9:破译邮件

C语言编程练习9:破译邮件

C语⾔编程练习9:破译邮件题⽬描述⼩明收到了⼀封很奇怪的邮件,⾥⾯全是⼀些符号和数字,但是信上⾯给出了破译⽅法,具体⽅法如下:(1)将1变为‘A’,2变为‘B’,...,26变为‘Z’;(2)将‘#’变为⼀个空格;(3)忽略‘-’,原始信件中‘-’仅仅⽤来分割数字。

现请你编程帮助⼩明破译这封邮件。

输⼊输⼊的第⼀⾏为⼀个整数C,表⽰测试数据的组数。

接下来C⾏,每⾏输⼊⼀个待破译的字符串,字符串中只包含数字、‘-’和‘#’,长度不超过100。

输出对于每组输⼊,输出破译后的⽂本。

样例输⼊49#23-9-12-12#19-20-5-1-12#1-20#12-5-1-19-20#15-14-5#10-5-23-5-121-14-4#12-5-1-22-5#20-8-5#13-21-19-5-21-13#9-14#20#13-9-14-21-20-5-191-6-20-5-18#20-8-5#15-16-5-14-9-14-7#15-6#20-8-5#5-24-8-9-2-9-20-9-15-147-15-15-4#12-21-3-11样例输出I WILL STEAL AT LEAST ONE JEWELAND LEAVE THE MUSEUM IN T MINUTESAFTER THE OPENING OF THE EXHIBITIONGOOD LUCK#include <stdio.h>#include <iostream>#include <cstring>using namespace std;int main(){int n;cin >> n;getchar();while(n--){char s1[105];cin >> s1;int l = strlen(s1);for(int i = 0;i<l;i++){int num=0;int flag=0;//判断是否需要输出while(s1[i]>='0'&&s1[i]<='9'){flag=1;num=num*10+s1[i]-48;i++;}if(flag){printf("%c",num+'A'-1);//转化为字母输出}if(s1[i]=='#')printf(" ");//空格转化}cout << endl;}return 0;}。

专升本C语言历年考试题及答案9

专升本C语言历年考试题及答案9

专升本C语言历年考试题及答案第一章与第三章练习题1. 一个C程序的执行是从_____。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2. 以下叙述正确的是:A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误3. 以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面4. C语言规定:在一个源程序中,main函数的位置。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后5. 一个C语言程序是由A)一个主程序和若干子程序组成B)函数组成C)若干过程组成 D)若干子程序组成6. 若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32)A)4 B)16 C)32 D)527. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:A)7 B)8 C)6 D)28. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符9. 若有代数式3ae/bc,则不正确的C语言表达式是:A) a/b/c*e*3 B)3*a*e/b/cC)3*a*e/b*c D)a*e/c/b*310. 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。

C语言习题级答案9

C语言习题级答案9

测试题91.设有说明int (*ptr)[M];其中标识符ptr是(C)。

A、M个指向整型变量的指针B、具有M个指针元素的一维指针数组,每个元素都只能指向整型量C、一个指向具有M个整型元素的一维数组的指针D、指向M个整型变量的函数指针2.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(A)。

A、8B、7C、10D、93.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。

A、6B、-3C、-12D、94.当调用函数时,实参是一个数组名,则向函数传送的是(B)。

A、数组每一个元素的地址B、数组的首地址C、数组每个元素中的值D、数组的长度5.以下叙述不正确的是(B)。

A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成对于基本类型相同的两个指针变量之间,不能进行的运算是(A)。

A、+B、<C、=D、-fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(D)。

A、答案B和C都正确B、只写C、追加D、读或读写以下叙述正确的是(B)。

A、do-while语句构成的循环不能用其它语句构成的循环来代替.B、用do-while语句构成的循环,在while后的表达式为零时结束循环C、用do-while语句构成的循环,在while后的表达式为非零时结束循环.D、do-while语句构成的循环只能用break语句退出.C语言程序中必须有的函数是(C)A、#include "stdio.h"B、#include <string.h>C、mainD、printf以下不正确的说法是:C语言规定(B)。

A、实参可以为任何类型B、形参可以是常量,变量或表达式C、实参可以是常量,变量或表达式D、形参应与其对应的实参类型匹配一致11.已知int k=67; 则表达式k/10的值为; CA、6.70B、6.7C、6D、7static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(B)。

C语言习题(8-9)

C语言习题(8-9)

C语言习题(8-9)一.填空题1.C语言中,将一个变量的地址称为______________,存放变量地址的变量称为______________。

2.设int a[10]={1,2,3}; 则*(a+3)的值是________________。

3.若使表达式p=”jiangsu”无任何错误(包括语法错误和警告),则p的定义语句为_____________。

4.若有下列定义和语句:int a[4]={0,1,2,3}, *p; p=&a[2];则*--p的值是_____________。

5.执行下列程序段后,变量a的值为_____________。

int *p,a,b=1; p=&a; *p=10; a=*p+b;6.设一个C程序中有如下定义:char line[]=”china”;char *ptr=line;则ptr中为_____________的地址,line[5]中为_____________,*(ptr+2)的值为_____________。

7.假定int型指针p所指对象的值为25,p+1所指对象的值为46,则执行”(*p)++;”语句后,p所指对象的值为_____________。

8.若要使指针p指向一个double型的动态存储单元,请在空白处填上适当的内容:p=____________malloc(sizeof(double));9.若有定义:int (*p)[4];则标识符p是_____________________________________________________。

10.struct student{ int num;char name[20];float score;}stu[3], *p; p=stu;写出通过p访问stu[0]中score成员的两种表达式___________________________________________。

二.选择题1.已有定义int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是_____________。

C语言练习题(带详解答案)

C语言练习题(带详解答案)

C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。

C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

(完整版)C语言语法基础练习题(含答案)

(完整版)C语言语法基础练习题(含答案)

C语言语法基础练习题一、选择题1.C语言基本类型包括( )A) 整型、实型、逻辑型B) 整型、实型、字符型、逻辑型C) 整型、字符型、逻辑型D) 整型、实型、字符型2.2.语言的字符型数据在内存中的存储形式是( )A)原码B)补码C) 反码D) ASCII码3.语言的整型数据在内存中的存储形式是( )A)原码B)补码C) 反码D) ASCII码4.sizeof(float)是。

A) 一个双精度型表达式B) 一个整型表达式C) 一种函数表达式D) 一个不合法的表达式5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为。

A) D B) 68 C) 不确定的值D) C6.以下叙述正确的是。

A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示7.以下叙述不正确的是。

A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值8.下面正确的字符常量是。

A) “c”B) ‘\\’’C) ‘’D) ‘K’9.下列四组选项中,均是合法转义字符的选项是。

A) ‘\”’‘\\’‘\n’B) ‘\’‘\017’‘\”’C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘xlf’10.下列四组选项中,均是不合法的用户标识符的选项是。

A) W P_0 doB) b-a goto intC) float la0 _AD) -123 abc TEMP11.下列四组选项中,均不是C语言关键字的选项是。

C语言练习题及答案

C语言练习题及答案

综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。

A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A)C)356e39、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。

c语言练习题

c语言练习题

c语⾔练习题4题⽬:根据下⾯的函数关系,对输⼊的每个x值,计算出相应的y值并输出结果。

5 题⽬:输⼊⼀个整数,当为65时显⽰A,66时显⽰B,68时显⽰C,其他值时显⽰END。

(可选⽤switch 语句编写)6 题⽬:编写程序将⽤户输⼊的字母进⾏⼤⼩写转换。

7 题⽬:编程判断输⼊的正整数是否即是5的倍数⼜是7的倍数。

若是则输出该数;否则输出-1。

8 题⽬:输⼊⼀个整数,判断它是奇数还是偶数并输出。

9 题⽬:从键盘输⼊⼆个整数a、b,将其按⼤到⼩排列。

10 题⽬:找出不超过1000的⼗位数字为1,个位数字为3或7的所有数。

例如:13、17、113、317等。

11 题⽬:输⼊⼀个整数,判断该数是否能被3,5,7整除,并输出以下信息之⼀:(1)能同时被3,5,7整除;(2)能被其中两数(要指出哪两个)整除;(3)被其中⼀个数(要指出哪⼀个)整除;(4)不能被3,5,7任⼀个整除。

12 题⽬:输⼊⼀个5位的正整数,判定该正整数是否为⼀个回⽂数。

(所谓回⽂素数是指正读和反读都相同的数,例如12321)。

13 题⽬:假设变量a、b、c为整数,从键盘读⼊a、b、c的值,当a为1时显⽰b与c之和,a为2时显⽰b与c之差,a为3时显⽰b 与c之积,a为4时显⽰b/c之商,其他数值不做任何操作。

14 题⽬:输⼊⼀个整数,将其数值按⼩于10,10~99,100~999,1000以上分类并显⽰(例如:输⼊358时,显⽰358 is 100 to 999)。

15 题⽬:从键盘读⼊三⾓形三边,判断能否组成三⾓形,若可以组成三⾓形,输出三⾓形的⾯积。

16 题⽬:从键盘读⼊三⾓形三边,判断能否组成三⾓形,若可以组成三⾓形,输出三⾓形的类型(等边、等腰、直⾓、⼀般)。

17 题⽬:计算⼆次⽅程的根。

18 题⽬:给出⼀个不多于5位的正整数,求出它是⼏位数,分别打印出每⼀位数字,然后再按逆序打印出各位数字。

19 题⽬:从键盘输⼊三个整数a、b、c,输出其中最⼤的数。

C语言练习题

C语言练习题

C语言编程练习顺序结构:1.已知行驶时间与速度,试编程求解并输出行驶的路程(5分)。

2.编写程序对100以内所有能被3整除但不能被5整除的数求和并输出结果(6分)。

3.请编写程序,将“China”译成密码,密码规律是:用原来的字母后面的第4个字符代替原来的字母。

例如:字母“A”后面的第4个字母是“E”,用”E”代替“A”。

4.编写程序,将输入的大写字母转换为小写字母输出5. 编写一个C程序,输入a,b两个值,输出这两个数的和。

6.编写程序,输入一个人三门课的成绩,输出其平均成绩。

7.编写程序,任意输入一个三位整数,输出各位上数字之和,如输入123,则1+2+3=6,输出6。

8.输入圆的半径,输出该圆的周长和面积,结果保留2位小数。

9.编写程序,输入一个人三门课的成绩,输出其平均成绩。

10.利用中间变量,完成两值交换。

选择结构:11.编写一个C程序,以下程序根据输入的三角形的三边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型编写程序。

12.编写程序输入x值,求解以下分段函数,并将其结果输出y=13.编写程序,判断输入的字符,若为小写字母,将其转换为大写字母,若为大写字母,将其转换为小写字母,若为其他字符,则原样输出。

14.编写程序,输入x的值,计算y的值:公式如右图:y={−1 x<00 x=01 x>0。

15.编写程序,根据输入的数字,输出相应的星期。

(1-7,则周一---周日,除此之外的数字,均输出无效输入的提示)循环结构:16.编写程序,输出1000以内的所有水仙花数。

水仙花数是指一个三位数,数的本身等于各位数字立方之和,如153=1^3+5^3+3^3。

17.编写程序,计算100以内能被3整除的数的和。

18.编写程序,求5!(输出格式要求为:例:5!=120)19.输入n个数,要求按照由小到大的顺序输出,并要求每行输出5个。

数组:20.编写程序,任意输入一行字符,以‘\n’结束,要求统计其中字母的个数,并将原字符及统计结果输出。

(完整版)C语言基础练习题(含答案)

(完整版)C语言基础练习题(含答案)

目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。

(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.Void C._3com_ D.int9.一个C程序是由()。

C语言练习题(带答案)

C语言练习题(带答案)

一、单项选择题1、(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2、C语言程序从C开始执行、A) 程序中第一条可执行语句B) 程序中第一个函数C)程序中的main函数D)包罗文件中的第一个函数3、以下讲法中正确的是(C)、A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4、下列关于C语言的讲法错误的是( B ) 、A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。

C)C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5、下列正确的标识符是(C )、A、-a1B、a[i]C、a2_iD、intt6、下列C语言用户标识符中合法的是(B)。

A)3ax B)xC)caseD)—e2E)union7、下列四组选项中,正确的C语言标识符是(C)、A) %xB) a+b C)a123 D) 1238、下列四组字符串中都能够用作C语言程序中的标识符的是( A )。

A、print_3d db8 aBc B、I\amone_half start$it3paiC、str_1 Cpp powwhileD、PxqMy—>book line#His、ag e9、C语言中的简单数据类型包括(D)、A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10、在C语言程序中,表达式5%2的结果是C、A)2、5 B)2 C)1D)311、假如int a=3,b=4;则条件表达式"a〈b? a:b”的值是__A__。

A) 3 B) 4C) 0 D) 112、若int x=2,y=3,z=4 则表达式x〈z?y:z的结果是( B)、A)4 B)3C)2 D)0E)113、C语言中,关系表达式与逻辑表达式的值是( B) 、ﻩA) 0 B) 0或1 C) 1 D) ‘T’或’F’14、下面(D)表达式的值为4、A)11/3 B) 11、0/3C)(float)11/3 D) (int)(11、0/3+0、5)15、设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0、5的是( B)A、b=1、0/aB、b=(float)(1/a)C、b=1/(float)aD、b=1/(a*1、0)16、若“int n;float f=13、8;”,则执行“n=(int)f%3”后,n的值是(A)A、1 B、4C、4、333333D、4、617、以下对一维数组a的正确讲明是: DA) char a(10); ﻩﻩﻩB)int a[];C)int k=5,a[k];D)chara[3]={‘a’,'b','c’};18、以下能对一维数组a进行初始化的语句是:(C)A、inta[5]=(0,1,2,3,4,) B、inta(5)={}C、int a[3]={0,1,2}D、inta{5}={10*1}19、在C语言中对一维整型数组的正确定义为D、A)int a(10);B)int n=10,a[n];C)int n;a[n]; D)#define N10inta[N];20、已知:int a[10]; 则对a数组元素的正确引用是(D)、A、a[10]B、a[3、5]C、a(5) D、a[0]21、若有以下数组讲明,则i=10;a[a[i]]元素数值是(B)。

C语言上机练习9

C语言上机练习9

上机报告9 结构体一、上机内容:1)观察以下程序:#include <stdio.h>#define FORMAT "%d\n%s\n%f\n%f\n%f\n"struct student{ int num;char name[20];float score[3]; }stu={12345, "LiLi",67.5, 89, 78.6};void main(){void print(struct student *); //形参类型指向结构体的指针变量print( &stu );} //实参为stu的起始地址void print(struct student *p) //形参为指向结构体的指针变量{printf(FORMA T,p->num,p->name,p->score[0],p->score[1],p->score[2]) ;//用指针变量调用各成员的值}1、修改程序,单独定义student结构。

struct student{ int num;char name[20];float score[3]; };请定义一个名为st的变量。

定义时不对变量赋初值。

编写一个函数,用来给结构变量赋值。

struct student st;scan(struct student *p){(*p).num=12345;(*p).score[0]=67.5;(*p).score[1]=89.0;(*p).score[2]=78.6;strcpy((*p).name,"LiLi");}2、不定义结构变量,定义一个结构指针,在内存中开辟一个空间,用来存储一个student结构体类型的数据,并以把数据{12345, "LiLi",67.5, 89, 78.6}按结构体的存储格式存储到开辟的内存空间中。

C语言程序设计(第3版)-参考答案 (9)

C语言程序设计(第3版)-参考答案 (9)

参考答案第 9 章编译预处理一、选择题二、编程题略。

习题一、选择题(1)编译预处理的工作是在( A )完成的。

A)编译前B)编译时C)编译后D)执行时(2)以下选项汇总,( D )不属于编译预处理。

A)宏定义B)文件包含C)条件编译D)连接(3)以下选项中,( C )是C语句。

A)#include<stdio.h> B)#define PI 3.1415926C)j++; D)a=3(4)以下叙述中错误的是( D )。

A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号结束C)“#define MAX 3 ”是合法的预处理命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(5)以下关于宏的叙述中正确的是( C )。

A)宏名必须用大写字母表示 B)宏定义必须位于源程序中所有语句之前C)宏展开没有数据类型限制D)宏调用比函数调用耗费时间(6)在宏定义#define PI 3.1415926中,用宏名代替一个( D )。

A)单精度数B)双精度数C)常量D)字符串(7)设有宏定义#define A B abcd,则宏展开时( A )。

A)宏名A用B abcd替换B)宏名A B用abcd替换C)宏名A和宏名B都用abcd替换D)语法错误,无法替换(8)若程序中有宏定义行#define N 100,则以下叙述中正确的是( B )。

A)宏定义行中定义了标识符N的值为整数100B)对C源程序进行预处理时,用100替换标识符NC)对C源程序进行编译时,用100替换标识符ND)在运行时,用100替换标识符N(9)以下程序的运行结果是( B )。

#include <stdio.h>#define M 5#define N M+Mvoid main( ){ int k;k=N*N*5;printf("%d\n",k);}A)500 B)55C)125 D)程序有错无输出结果(10)以下程序的运行结果是( D )。

C语言经典练习题50道(附答案)

C语言经典练习题50道(附答案)

1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。

#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。

#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。

#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。

#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。

#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。

C语言练习题

C语言练习题

第一章C程序概述一.选择题1.在计算机上可以直接运行的程序是(C )A.C语言源程序B.汇编语言程序C.机器语言程序D.高级语言程序2.一个程序总是从( B )开始执行程序A.第一行B.主函数C.第一个函数D.最后一个函数3.下述标识符中,(B )是合法的用户标识符。

A.A#CB.getchC.voidD.ab*4.以下叙述正确的是( C )A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误5.C语言规定,在一个源程序中,main函数的位置(C )A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后6. 一个C语言程序是由( B )A.一个主程序和若干个子程序组成B.函数组成C.若干个过程组成D.若干子过程组成7. 以下叙述不正确的是( D )A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面8.一个C程序的执行是从( A )A.本程序的main函数开始,到main函数的结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束C.本程序文件的main开始,到本程序文件的最后一个函数的结束D.本程序文件的第一个函数开始,到本程序文件的main函数的结束9. 以下叙述中正确的是( B )A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编译10.以下叙述错误的是( D )A.C程序中,语句用分号“;”结尾,分号是C语句的一部分B.C程序中,可以在“{}”内写若干条语句,构成复合语句C.D语言的变量在使用之前必须先定义其数据类型D.C语言函数内部可以定义函数11. 以下叙述错误的是( D )A.C程序的注释部分放在“/*”和“*/”之间,“/”和“*”之间不允许有空格B.一个C源程序可由一个或多个函数组成C.一个C源程序必须有一个且只能有一个main函数D.C程序编译时注释部分的错误将被发现二.填空题1. C源程序的基本单位是________(函数)2. 一个C源程序中至少应包括一个______(main 函数)3. 在一个C源程序中,注释部分两侧的分界符分别是______和______(/* */)。

(完整版)C语言各章练习题

(完整版)C语言各章练习题

目录第一章程序设计和C语言 (2)第二章最简单的C程序设计 (2)第三章选择结构程序设计 (4)第四章循环结构程序设计 (7)第五章数组 (11)第六章函数 (14)第七章指针 (18)第一章程序设计和C语言一、选择题:1.一个C程序的执行是从( )A、本程序的main函数开始,到main函数结束B、本文件第一个函数开始,到本文件的最后一个函数结束C、本程序的main函数开始,到本文件的最后一个函数结束D、本文件的第一个函数开始,到本文件的main结束2.以下说法不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面3.C语言规定:在一个源程序中,main函数的位置()A、必须在开始B、必须在系统调用的库函数的位置C、可以任意D、必须在最后4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是( )A、program.bak和program.objB、program.obj和program.exeC、program.exl和program.cD、program.bak和prgram.exe第二章最简单的C程序设计一、选择题1.是合法的用户自定义标识符的( )A、ah-spksB、doubleC、<ctrl>D、_myapple2.以下正确的C语言标识符是()A、%xB、a+bC、a123D、test!3.以下不能定义为用户标识符的是( )A、V oidB、b_2C、intD、name4.以下选项中可作为C语言合法整数的是( )A、11010(B)B、0583C、x2b2D、0xafb5.VC++6.0中的短整型数值在计算机中占用的字节个数是( )A、1B、2C、3D、46.设short int型的数据长度为2个字节,则unsigned short 类型数据的取值范围是()P34A、均为2个字节B、0至65535C、-3276至32767D、-256至255 7.以下选项中可作为C语言合法常量的是()(指数E或e前必须有数字,后面必须有整数)A、-80.0B、-080C、-8e1.2D、-80.0e8.在VC++6.0编译环境下,下列式中,值不为4的表达式是()P34,double为8字节A、sizeof(unsigned long)B、sizeof(long)C、sizeof(unsigned int)D、sizeof(double)9.设有说明语句:char a=’\123’;则变量a( )一个ascii字符A、包含1个字符B、包含2个字符C、3个字符D、说明不合法10.设x为一数字字符,则其所对应的十进制数值为()。

山东春季高考C语言练习题

山东春季高考C语言练习题

C 语言程序设计1.程序填空题程序功能:定义函数 max(int a,int b),比较整数 a,b 的大小并输出较大值。

代码如下:#includeint max(int a,int b){if(【1】)return a;elsereturn 【2】;}void main(){int 【3】;printf("请输入 2 个整数:\n");scanf("%d%d", &a,&b);printf("较大值:%d \n", 【4】);}2.程序填空题代码如下:#include <stdio.h>main(){int age1, age2;printf("请输入小明和小红的年龄:");scanf("%d %d", 【1】, 【2】);if (【3】)printf("小明比小红大\n");else if (【4】)printf("小红比小明大\n");elseprintf(【5】);}3.程序填空题#include <stdio.h>main(){int num, n1, n2, n3;printf("请输入一个三位正整数:");scanf("%d", 【1】);n1 = 【2】;n2 = 【3】;n3 = 【4】;if (【5】 == num)printf("Y\n");elseprintf("N\n");}4.程序填空题程序功能:输入一个 1800~2800 之间的整数作为年份,判断该年份是否为闰年。

年份符合下列条件之一者为闰年:①能被 4 整除且不能被 100 整除;②能被 400 整除。

程序部分代码如下:#include <stdio.h>main(){int year,flag;printf("请输入年份:");【1】;【2】printf("年份超出范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013届寒假程序设计练习题☆说明:基础题部分的9道题必做,提高题部分的5道题至少做2道。

(自学C 程序设计的数组和函数部分)。

★文件保存要求:用自己的中文名字作为文件夹名;目录下存程序源文件,程序源文件名以题目序号为名,但提高题部分的文件名由题目中给出。

⊙文件读写样例在目录中,能理解文件操作的同学,尽量用文件读写的方式。

※基础题部分:1、将一个正整数分解质因数,此数若为质数输出-1,否则输出格式如例子所示。

例如:输入90,打印出90=2*3*3*5。

2、输入一行字符(字符数不大于100),分别统计出其英文字母、空格、数字和其它字符的个数。

输出格式:四个整数之间用空格间隔(分别为英文字母、空格、数字和其它字符的个数)。

3、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

输出格式:一个实数,小数保留2位。

4、一个5位数,判断它是不是回文数。

即12321是回文数,个位与万位相同,十位与千位相同。

输出格式:是回文数输出大写的Y,否则输出大写的N。

5、打印一个N*N的方阵,N为每边字符的个数(3<N<20),要求最外一层为"T",第二层为"J",从第三层起每层依次打印数字1,2,3,...(下图以N为15为例)N=15打印出下面图形TTTTTTTTTTTTTTTT JJJJJJJJJJJJJ TT J11111111111J TT J12222222221J TT J12333333321J TT J12344444321J TT J12345554321J TT J12345654321J TT J12345554321J TT J12344444321J TT J12333333321J TT J12222222221J TT J11111111111J TT JJJJJJJJJJJJJ TTTTTTTTTTTTTTTT输入文件:一个数N;输出文件:数据格式如上图,字母用大写。

6、读入一行文本,包含若干个单词(以空格间隔,%结尾)。

将其中以A开头的单词与以N结尾的单词,用头尾交换的办法予以置换。

(字符个数不大于100)7、题目:任意输入一个十进数整数,将其转换成N进制数(0<N<=16)输出。

(输入文件:只有一行,有两个数,数字M和进制数N,用空格间隔)8、题目:矩阵中填数.当给出N*N的矩阵,要求用程序填入下列形式的数:(N<=10)①倒填,例如N=5②蛇形填数③回转填数┌─┬─┬─┬─┬─┐┌─┬─┬─┬─┬─┐┌─┬─┬─┬─┬─┐│25│24│23│22│21││1│3│4│10│11││1│16│15│14│13│├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤│20│19│18│17│16││2│5│9│12│19││2│17│24│23│12│├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤│15│14│13│12│11││6│8│13│18│20││3│18│25│22│11│├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤│10│9│8│7│6││7│14│17│21│24││4│19│20│21│10│├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤│5│4│3│2│1││15│16│22│23│25││5│6│7│8│9│└─┴─┴─┴─┴─┘└─┴─┴─┴─┴─┘└─┴─┴─┴─┴─┘9、题目:有n个人围成一圈,顺序排号。

从第1个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下的是原来第几号的那位。

※提高题部分1、Your Ride Is Here你的飞碟在这儿!【题目描述】一个众所周知的事实,在每一慧星后面是一个不明飞行物UFO。

这些不明飞行物时常来收集来自在地球上忠诚的支持者。

不幸地,他们的飞碟在每次旅行只能带上一定数目的支持者。

他们要做的是用一种聪明的方案让每一个团体人被慧星带走。

他们为每个慧星起了一个独有名字,通过这些名字来决定一个团体是不是特定的慧星带走。

那个相配方案的细节在下面被给出;你的工作要写一个程序来通过团体的名字和彗星的名字来决定一个组是否应该与在那一颗慧星后面的不明飞行物搭配。

团体的名字和慧星的名字都以下列各项方式转换成一个数字:这个最后的数字代表名字中所有字母的信息,"A"是1和"Z"是26。

举例来说,团体"USACO"会是21*19*1*3*15=17955。

如果团体的数字除以47的余数等于慧星的数字除以47的余数,那么你要告诉这个团体需要准备好被带走!写一个程序读入慧星的名字和团体的名字,如果能搭配打印"GO"否则打印"STAY"团体的名字和慧星的名字将会是有没有空格或标点的一串大写字母(不超过6个字母)。

【输入格式(ride.in)】第1行:彗星的名字(一个长度为1到6的字符串)第2行:团体的名字(一个长度为1到6的字符串)【输出格式(ride.out)】单独一行包含"STAY"或"GO"。

【输入样例1】COMETQHVNGAT【输出样例1】GO【输入样例2】ABSTARUSACO【输出样例2】STAY2、Greedy Gift Givers贪婪的送礼者【题目描述】对于一群要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少。

在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人。

然而,在任何一群朋友中,有些人将送出较多的礼物(可能是因为有较多的朋友),有些人有准备了较多的钱。

给出一群朋友,没有人的名字会长于14字符,给出每个人将花在送礼上的钱,和将收到他的礼物的人的列表,请确定每个人收到的比送出的钱多的数目。

【输入格式(gift1.in)】第1行:人数NP,2<=NP<=10第2到NP+1行:这NP个在组里人的名字一个名字一行第NP+2到最后:这里的I段内容是这样组织的:第一行是将会送出礼物人的名字。

第二行包含二个数字:第一个是原有的钱的数目(在0到2000的范围里),第二个NGi是将收到这个人礼物的人的个数如果NGi是非零的,在下面NGi行列出礼物的接受者的名字,一个名字一行。

【输出格式(gift1.out)】输出NP行每行是一个的名字加上空格再加上收到的比送出的钱多的数目。

对于每一个人,他名字的打印顺序应和他在输入的2到NP+1行中输入的顺序相同。

所有的送礼的钱都是整数。

每个人把相同数目的钱给每位要送礼的朋友,而且尽可能多给,不能给出的钱由送礼者本人持有。

【重要提示】评测程序是基于UNIX的LINUX系统:换行符只是一个"\n",这与WINDOWS下换行符有两个字符"\n与\r"是不同的。

不要让你的程序被困在这里!【样例输入】5davelauraowenvickamrdave2003lauraowenvickowen5001daveamr1502vickowenlaura02amrvickvick00【样例输出】dave302laura66owen-359vick141amr-1503、Friday the Thirteenth黑色星期五【题目描述】13号又是一个星期五。

13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。

给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400。

这里有一些你要知道的:1900年1月1日是星期一.4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.年份可以被4整除的为闰年(1992=4*498所以1992年是闰年,但是1990年不是闰年)以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900和2100年是平年,而2000年是闰年.请不要预先算好数据(就是叫不准打表0。

0)!【输入输出文件格式】程序名:friday.c输入格式:(friday.in)一个正整数n.输出格式:(friday.out)七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一...星期五的次数.【输入样例】20【输出样例】363334333535344、Broken Necklace(beads)打破项链【题目描述】你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。

这里是n=29的二个例子:1212r b b r b r r br b b br r b rr r w rb r w wb b r rb b b bb b r br r b rb r r rb r r rr r r br b r r r w图片A图片Br代表红色的珠子b代表蓝色的珠子w代表白色的珠子第一和第二个珠子在图片中已经被作记号。

图片A中的项链可以用下面的字符串表示:brbrrrbbbrrrrrbrrbbrbbbbrrrrb假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收集的不同)。

确定应该在哪里打破项链来收集到最大多数的数目的珠子。

例如,在图片A中的项链中,在珠子9和珠子10或珠子24和珠子25之间打断项链可以收集到8个珠子。

白色珠子什么意思?在一些项链中还包括白色的珠子(如图片B)所示。

当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。

表现含有白珠项链的字符串将会包括三个符号r,b和w。

写一个程序来确定从一条被给出的项链可以收集到的最大珠子数目。

【程序名称】beads.c【输入格式】第1行:N,珠子的数目第2行:一串长度为N的字符串,每个字符是r,b或w。

【输出格式】单独的一行包含从被供应的项链可以被收集的珠子数目的最大值。

【样例输入】(文件beads.in)29wwwbbrwrbrbrrbrbrwrwwrbwrwrrb【样例输出】(文件beads.out)11。

相关文档
最新文档