1. C语言程序总是从 函数开始执行。
2. 在一个C源程序中,注释部分两侧的分界符分别为________和________。
3. C语言中,源程序文件的扩展名是 ,编译后生成目标文件的扩展名是 ,连接后生成可执行文件的扩展名是 。
4.C语句的最后用 结束。
第三·四章
1. Turbo C中int类型变量所占字节是 。
2. 设y是int型,请写出y为奇数的关系表达式 。
3. 程序片段 int a = 1234; printf (" %2d\\n ",a) ; 的输出结果是 。
4. 若想将a定义为双精度型变量,应用语句 。
5. 假设所有变量均为整型,则表达式(a = 2, b = 5, b ++, a + b)的值是 。
6. 假设所有变量均为整型,则表达式(a = 2, b = 5, a++, b++, a + b)的值为____________。
7. 假设所有变量均为整型,则表达式(a = 2, b = 5, ++b, a + b)的值为____________。
8. 设有如下语句: int a = 2, b = 5, c;c = 21%9 - (float)a + 4 / b * b;则变量c的值为 。
9. 命题:当字符变量ch取英文字母时表达式的值为真,其C语言表达式为 。
10.表达式 sizeof(“key”) 的值是______。
11.C语言将一组语句扩在 中,称为复合语句。
12.请写出与表达式!(x>0)等价的表达式 。
13.设a=12,a定义为整型变量,则表达式a+=a-=a*=a的值为 。
14.设a=12,a定义为整型变量,则表达式a+=a*=a的值为 。
15.表达式9!=8的值是 _______。
16.若已定义x和y为float类型,x=1.5则表达式y=x+3/2 的值是 ________。
17.把a1定义成双精度实型变量,并赋初值1的定义语句是 。
18.C语言中,表达式的结果用 表示逻辑值“真”, 用 表示逻辑值“假”。
19.表达式10/3*9的结果为 ;表达式1+1==2的结果为 。
20.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式:a21.当a = 3, b = 2, c = 1时,表达式f = a > b > c的值是____ _____。
22.在C语言中空语句的形式是 。
23.如果要将g定义为长整型数据类型变量,应使用语句 。
24.设x=2.5,a=7,y=4.7;则算术表达式:x+a%3*(int)(x+y)%2/4的结果为 。
25. C语言提供的三种逻辑运算符是_______,_______和_________。
26.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是 。
27.在计算机中,字符的比较是对它们的 进行比较。
28.在内存中,存储字符‘X’要占用 字节,存储字符串“X”要占用 字节。
29.设有int x=11;则表达式(x++*1/3)的值是 。
30.设以下变量均为int类型,表达式(x=y=6,x+y,y+1)的值为 。
31.调用gets和puts函数时,必须包含的头文件是 。
32.语句printf(“%f\\n”,13.0*(1/5));的输出结果为 。
33.在C语言中,表达式10+16%3的结果是 。
34.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符 。
35.C语言程序的注释可以出现在程序中的任何地方,一个注释以 作为开始,以 结束。
36.若int k=7,x=12; 则表达式x%=(k-k/5)的结果为 。
37.若有以下定义:char a;int b;float c; double d;则表达式a*b+d-c值的类型为 。
38.若w=4,x=3,y=2,z=1;则条件表达式w>x? w:y 40. 在<=、=、%、&&这四个运算符中,优先级最低的运算符是 。 41.在C程序中,一个C程序的执行都是从本程序的 开始,到 结束。 42.如下语句printf("%c\\n",′A′+3); 在执行后的输出结果是 。 43.设x,y,z,t均为整型变量,现有如下语句x=y=z=1;t=++x||++y&&++z;则执行这个语句后t的值为 。 44.在C语言中,表达式8<=10的结果是 。 45. 若x、i、j和k都是int型变量,则计算x=(i=4, j=16, k=16)表达式后,x 的值为 。 46.表示条件:10 48.设int y;执行表达式(y=4)||(y=5)||(y=6)后,y的值是 49.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch= ‘a’+‘8’-‘3’的值为 。 50.语句printf(“%5.2f\\n”, 2345.678); 的输出结果是 。 函数 1.在C语言中,函数中定义的变量没有说明其存储类别,都隐含为 。 2.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));含有实参的个数为 。 3.构成C程序的基本单位是 。 4.当调用函数时,实参是变量名,则向函数传送的是 。 5.C语言中用auto, ,static和 四个关键字来表示变量的存储类别。 6.已知 int x; 是文件file1.c中定义的一个全局变量,若文件file2.c中的某个函数也需要访问x,则在文件file2.c中x应说明为 。 7. C语言中,寄存器存储类型的关键字是 。 8.下面函数是一个求阶乘的递归调用函数。请填空。 int fun(int n) {if(n = = 1 || n = = 0) ; else return( );} 9. 已知 float x; 是文件file1.c中的一个全局变量定义,若文件file2.c中的某个函数也需要访问x,则在文件file2.c中x应说明为 。 10.当调用函数时,实参是一个数组名,则向函数传递的是 。 11. 在C语言中,形参的缺省存储类型是 。 循环 1. 结构化程序设计的三种基本结构是:顺序结构、选择结构和 。 2.下列程序段循环体执行的次数是 。 int x = 3; do{printf("%d",--x);}while(!x); 3.下列语句片段scanf最少可执行 次,最多可执行 次。 for(a=0,b=0;b!=10&&a<=5;a++) scanf(“%d”,&b); 4.若i为整型变量,则以下循环体执行次数是 。for( i = 2; i = = 0; ) printf("%d i--); 5.若输入字符B,在右边的while语句执行后ch 的值是 。while(ch=getchar( )==‘A’) ; 6.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为 。 for(i=0, j=10; i<=j; i++, j--)k=i+j; 7.若有定义int k=10;则下列程序的输出结果为 。 do{ printf(“%d”,k--); } while(!k); 数组 1. 已知字符数组str的定义:char str[ ] = "Hello wang"; 则函数调用 printf ("%d", strlen(str)); 的输出结果为 。 2. 设有数组定义: char str[ ] = "HENAN " ; 则数组str所占的内存空间为 。 3. 已知字符数组 str的定义:char str[ ] = "ABCDEFGHIJ";则函数调用 printf ("%s", str + 5)的输出结果为 。 4.数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素 的值为6。 5. 假定int类型变量占用两个字节,其有定义:int x[10] ={0, 2, 4 };,则数组x在内存中所占字节数是 。 6.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 。 7.在C语言中,数组名代表 。 8.设有代码static int a[3][4]={{1}, {2}, {3}}; 则a[1][1]的值为 ;a[2][0]的值为 。 9.设有数组定义:char array[ ]=“China”; 则数组array所占的空间为 个字节。 10.有定义:int a[3][4]; 则该数组有元素 个。 11.如果一维数组的长度为n,则数组下标的最小值为 ,最大值为 。 12.调用C语言对字符处理的库函数时,在#include命令行中应包含的头文件是 。 指针 1. 设有定义:int n, *P = &n; 以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf("%d", ________ ); printf("%d\\n", _________ ); 2.若a是二维数组, a[2]+1的含义是 ;*(*(a+1)+2)的含义是 。 3.若有定义:int a[2][3] = {2, 4, 6, 8, 10, 12}; 则*(*(a + 1) + 2)的值是 。 5. 指针s指向存储单元a[2], p指向存储单元a[0], 表达式s - p的值是_____________。 6.若有定义 struct { int m,n;} a[2]={{1,2},{3,4}}, *p=a; 则表达式 ++(p->m)的值为 。 7.有以下定义的语句,则*(*(p+1)+1)的值为 。 int a[3][2]={10,20,30,40,50,60},*p; p=a; 8. 若有定义 struct { int m,n;} a[2]={{1,2},{3,4}}, *p=a; 则表达式 (++p)->m的值为 。 9.若a是二维数组,则*(a[2]+2)的含义是 ;*(a+2) 的含义是 。 10.执行语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[2],b; b=p[5];后,变量b中的值是 。 11.若a是一维数组,且指针变量p=a,则: a+i与 等价。 12.若有定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是 8 ,*(*(a+1)+2)的值是 。 13.设有定义语句:int a[3][2]={10,20,30,40,50,60},(*p)[2]; p=a; 则*(*(p+2)+1)的值为 。 1. 设有定义: struct date { int day; char month; int year; }dd, *p = ⅆ 写出引用结构体变量dd的成员dd.day的其它两种描述形式: , 。 2.设有定义:struct st { int x, y; }a[4]={{10,20},{30,40},{50,60},{70,80}}; struct st *p=a; 则printf(“%d”, ++p->y);的输出结果为 。 3.设有如下定义:struct sk { int n; float x;}data,*p=&data; 若要使用p访问data中的成员n,其引用形式是 。 4有如下结构体变量,若要从键盘输入“zhangli”给man中的name成员,应用语句 。 struct person {char name[10]; int age; }man; 1. 若将宏名SQR替换宏体3,其宏替换形式为 。 上机编程题 1.输入20个学生的成绩,要求:(1)求出平均成绩;(2)求出每个学生与平均成绩之差。 2.编写程序实现将二进制数转换为十进制数。(’0’的ASCII值为48) 3.从键盘输入一个百分制成绩,要求输出成绩等级“良好”、“及格”、“不及格”。(75分以上为良好,60—74分为及格,60分以下为不及格 。) 4.编写函数fac(int n)用来求解1! + 2! + 3! +…+ n!。 5. 编写函数,求x的y次方。(不能调用pow函数) 6. 编写程序实现功能:统计正整数n的位数(例如:n = 123时结果为3)。 x (x<1) 7. 有一函数: y= 2x - 1 (1≤x<10) 编写程序,输入x的值,输出y的值。 3x - 11 (x≥10) 8.有一个3×4的矩阵,求其最大元素值及其行列号。 } 9. 有一函数: -1 (x<0) 编一程序,输入一个x值,输出y的值。 y= 0 (x=0) 1 (x>0) 10. 编写输出以下图案的程序,图案的行数由输入决定。 A BBB CCCCC DDDDDDD 11. 编写函数:jishu(int *f, int *t, int m)。把数组中的所有奇数放在另一个数组中,函数返回奇数的个数,m接受原数组中数据的个数。(用指针实现操作) 12. 编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。 13.编写函数:void fun(char *p) 统计并输出一个字符串中字母(不区分大小写)的个数。 14. 编程实现模拟商场购物:设购物数量用num表示,物品的单价为25元,若0≤num <50,则不优惠;若50≤num <100,则按8折优惠;若num ≥100,则按6折优惠。输入购买物品数量,计算价钱。 15. 编写程序实现将整型数组中的10个数据按由小到大的次序排列。 16. 输入某公司2009年12个月的销售业绩,编程求出销售业绩最好的月份及其销售业绩。 17.有一函数: x (x<0) 写一程序,输入x的值,输出y的值。 y= x2 +10 (0≤x≤10) 3*x-10 (x>10) 18.编程实现:输入30个员工的实发工资,统计并输出实发工资在2000元以上的人数。 19.编写程序将一个二维数组转置,转置功能用自定义函数实现。 20.用指针实现:将数组a中的最大值与第一个元素相交换。 21. 将十元钱兑换成1元、5角、1角的硬币共计40枚,编程求有多少种兑换方法? 22. 给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80-分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’。 23. 编一程序求字符串的长度。(不能用strlen( )函数) 24. 编一函数实现求解n!。 25. 从健盘输入若干学生的成绩,输出最高成绩和最低成绩。 26. 编程实现将二进制数转换为十进制数。要求将二进制数存放于数组中。 27. 写一个判断素数的函数: int prime(int n) 返回1为素数,返回0为非素数。 28. 从键盘输入20个员工的工资,并按从高到低的顺序输出。 29. 编程实现:反向输出输入的正整数。 30. 编写函数:求1!+2!+3!+4!+…+n!。 31. 编程实现:输入year年份和month月份,求该月有多少天? 32.编程输入上网时间并计算上网费用,计算方法如下: 基数30元 (上网时间<10小时) 费用= 每小时2.5元 (上网时间10~50小时) 每小时2元 (上网时间≥50小时) 同时为了鼓励多上网,每月收费最多不超过150元。 33. 编写程序:输出如下图型,行数由键盘输入决定。 A BBB CCCCC DDDDDDD 34. 编一函数,由实参传来一个字符串,统计并输出此字符串中字母、数字、空格和其他字符的个数。 35. 输入50个学生的百分制成绩,统计并输出及格和不及格人数。(用指针实现) 36. 编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。 37. 编程输出以下图形,行数由键盘输入决定。 * *** ***** ******* 38. 某公司的利润提成方案是:小于等于1万元的利润提成5%,小于等于2万元的利润提成6%,小于等于4万元的利润提成7%,4万元以上利润提成8%,总提成采用分段累计计算。编程实现:输入某人完成的利润,求其可获得的利润提成。 39. 用指针编写程序:有10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,处理部分用函数实现。 40. 编写程序统计一个字符串中大写和小写字母的个数。下载本文