k:
c
c:
a);}
A)4B)3C)2D)1
12.已知字符'A'的ASCII码值是65,且charc1='A',c2='D';则执行语句
printf("%d,%d\n",c1,c2-2);后的输出结果是。
A)A,DB)A,BC)65,68D)65,66
13.C语言程序是由组成的。
A)子程序B)过程C)函数D)主程序和子程序
14.不正确的字符串常量是。
A)'abc'B)"12'12"C)"0"D)""
15.下列不正确的语句为。
A)if((a=b;)>0)t=a;B)if((a=b)>0)t=a;
C)if(a>b);D)if(a
16.在C语言中,不同类型数据混合运算,要先转换成同一类型后再进行运算。
设一表
达式中包含int、long、insigned、char类型的变量和数据,则表达式最后的运算结
果是()类型数据。
A)intB)longC)insignedD)char
17.以下选项中非法的表达式是()
A)0<=x&&x<100B)i=j==0C)(char)(65+3)D)x+1=x+1
18.执行语句x=(a=3,b=a--);之后,a,b,x的值依次为()
A)3,2,3B)2,2,3C)2,3,3D)3,2,2
19.以下程序运行后的输出结果是()。
main()
{charm;
m=′B′+32;printf(″%c\n″,m);}
A) B)C) b D)
20.能正确表示a和b同时为正或同时为负的逻辑表达式是()
A)(a>=0‖b>=0)&&(a<0‖b<0)B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0)&&(a+b<=0)D)a*b>0
(二)、计算题
1、设整型变量x为5,y为2。
下列表达式的值各为多少?
1)!
(y==x/2)2)y!
=x%3
3)x>0&&y<04)x!
=y||x>=y
2、设单精度型变量f、g均为5.0,执行下列表达式后,f的值为多少?
1)f+=g2)f-=g+5
3)f*=g–154)f/=g*10
3、执行表达式x=(a=3,b=a--)后,x,a,b的值各为多少?
4、设实型变量f1、f2、f3、f4的值均为2.0,整型变量m1、m2的值均为
表达式(m1==f1>=f2)&&(m2==f35、设单精度型变量f的值为13.8,执行表达式 “n=((int)f)%3”后,n的值是多少?
6、设i、j初值分别为3和4,则执行j+=i-=1;后i,j的值为多少?
7、请给出下列程序的输出结果。
main()
{
inta=-1,b=4,k;
k=!
((++a<0)&&!
(b--<=0));
printf("%d%d%d\n",k,a,b);
}
8、请给出下面程序的输出结果。
#include“stdio.h”
main()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);}
9、请给出下面程序的输出结果。
#include
main()
{ intm,n,x,y,z;
floata=2.4,b=3.9;
n=(int)a+(int)b;
m=(x=a+b,n+10);
y=x*=2+3;
z=y--;
printf("%d%d%d%d%d\n",m,n,x,y,z);
}
10、有程序
intb=6,d=5;
(++d==b--)?
d++:
b--
执行后b,d的值是多少?
第三章程序的简单算法制定
作业(教材p34):
一、填空题2.18~2.22
二、选择题2.24~2.40
三、编程题:
1输入三角形三边,求三角形面积。
2输入一个大写字母,要求变成小写字母输出。
写出算法,画出相应的流程图、N-S图
第四章分支结构
作业:
一、填空题4.1~题4.10
二、选择题4.12~题4.23
三、编程题4.24、4.26、4.28
补充编程题(用支结构语句编程)
1、从键盘输入三角形的三边长,判断出这三边能否构成三角形
2、从键盘上输入数字星期,在屏幕上显示英文星期。
第五章循环结构
作业:
一、填空题5.1、5.2、5.3、5.4、5.5、5.7
二、选择题5.13、5.14、5.16、5.18
三、编程题5.22、5.25
补充1、分别统计输入的字符串中字母、数字和其它字符的个数。
第六章函数
作业:
一、选择题6.1、6.3、6.4、6.5、6.7、6.9
二、判断题6.11-6.20
三、填空题6.21-6.30
四、阅读程序、写出程序运行结果
五、程序填空
六、编程题6.39、题6.40、题6.43
补充编程题:
1、写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。
2、函数,由实参传来一个字符串,统计该字符串中的字母、数字、空格和其它字符的
个数,在主函数中输入字符串以及输出上述结果。
第二部分大作业:
一、单项选择题
1、在C语言中,不正确的实型常量是。
A)-123e-3.0B)-.123C)-1.23e-1D)-0.123
2、在C语言中,正确的字符常量是。
A)’字’B)’\x41’C)”A”D)”ABC”
3、若变量已正确定义并赋值,下面符合C语言语法的表达式是
A)a:
=b+1B)a=b=c+2
C)int18.5%3D)a=a+7=c+b
4、结构化程序设计所规定的三种基本控制结构是_____________.
A)输入、处理、输出B)树形、网形、环形
C)顺序、选择、循环D)主程序、子程序、函数
5、循环语句的循环体中执行continue语句,其作用是。
A)立即终止程序执行B)继续执行continue语句之后的循环体各语句
C)结束本次循环D)跳出循环
6、若定义inti;则以下循环语句的循环执行次数是。
for(i=2;i==0;)printf("%d",i--);
A)无限次B)0次C)1次D)2次
7、若有定义intt=0;则语句while
(1)if(t++==100)break;的循环次数是___。
A)0B)1C)100D)无限次
8、以下程序的运行结果是。
#include
main()
{doublet;
printf("%3.1lf\n",(t=1,t+5,++t));
}
A)7.0B)6.0C)2.0D)1.0
9、若有以下程序段,
Intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是___________。
A)0B)0.5C)1D)2
10、以下程序的运行结果是。
main()
{intnum=13579,c;
do{printf(“%d”,num%10);
}while((num/=10)>0);
printf(“\n”);
}
A)13579B)7531C)3579D)97531
11、以下程序运行结果是。
main()
{intx=1,y=2,z;
z=x>y?
++x:
++y;
printf("%d,%d,%d\n",x,y,z);
}_
A)1,2,3B)1,3,3C)2,3,3D)2,2,3
12、若定义floata;现要从键盘输入a的数据,其整数位为3位,
小数位为2位,则选用。
A)scanf(“%f”,&a);B)scanf(“%5.2f”,a);
C)scanf(“%6.2f”,&a);D)scanf(“%f”,a);
13、设有説明语句:
inta=2,b=7,c=5;则执行以下语句后,输出为____________。
switch(a>0)
{case1:
switch(b<0)
{case0:
printf("@");break;
case1:
printf("!
");break;}
Case0:
switch(c==5)
{case0:
printf("*");break;
case1:
printf("#");break;
default:
printf("$");break;}
default:
printf("&");
}
A)@#&B)#&C)*&D)$&
14、下用户自定义函数中,存在的语法错误是。
sign(int)
{
if(a==0)return0;
elseif(a>0)return1;
elsereturn–1;
}
A)没有指出返回值类型B)函数名是C语言的关键字
C)形参变量没有定义D)函数体中多次出现了return语句
15、以下程序运行结果是。
#defineN3
#defineMN+1
#defineNUM(M+1)*M/3
main()
{inti,n=0;
for(i=0;iprintf("%d\n",n);
}
A)7B)8C)15D)6
二、改错题
1、老师要求学生编写一个程序,功能是:
当x等于2且-10≤y≤10时,输出”z=1”,暂停后,结束程序运行,否则输出”z=0”。
x和y值由键盘输入。
现有某学生编写程序如下,有诸多错误和不当之处,请你代替老师为他修改程序。
voidmain()
{intx,y,z;
scanf("x=%d,%3.2d",x,y);
printf("请输入x,y值:
");
if(x=2&&-10≤y≤10)
printf(“z=1”);
getche();
elseprintf(“z=0”);
return;
}
2、以下程序用于计算n=50时sum=1+1/2+1/4+...+1/n的值,并显示出来。
要求n从键盘输入。
请找出程序中的各处错误,并改正之。
#include
main()
{inti,sum,n;
n=50;
while
(1)
{if(n%2);break;}
For(i=1;i<=n;i+=2)sum+=1/n;
}
三、程序分析题
1、设以程序段中的变量都是int类型,则输出的结果是。
sum=pad=5;pAd=sum++,pAd++,++pAd;
printf(“%d\n”,pad);
2、以下程序的运行结果是。
main()
{inta,b,c;
a=b=c=1;
if(a++||++b)c++;
printf("%d,%d,%d\n",a,b,c);
}
3、以下程序的运行结果是。
main()
{intc;
while((c=getchar())!
='\n')
{switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
}
printf("\n");
}
输入:
742<回车>,程序的输出结果是。
4、以下程序的输出结果是。
#include"stdio.h"
#defineSUM(y)2+y
main()
{intx=5;
printf("%d\n",SUM(3)*x%5);
}
5、以下程序的输出结果是。
func(inta)
{staticintm=0;
m+=a*2;
returnm;
}
main()
{intk=6,p;
p=func(k);printf("%d,",p);
p=func(k);printf("%d\n",p);
}
四、请编程序求解问题:
有若干只鸡和兔在同一个笼子里,从上面数,有三十五个头;从下面数,有九十四只脚。
求笼中各有几只鸡和兔?
(20分)
第七章多维数组
书面作业(教材p161)
一、选择题7.1-7.10
二、判断题7.11-7.20
三、填空题7.21-7.30
四、阅读程序7.31、7.32
五、程序填空题7.36
六、编程题7.37、7.38、7.39
提交作业:
编程
1.已有一个已按从小到大排好序的整型数组,今输入一个整数,要求按原来排序的规律将它插入数组中。
2.将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1;要求改为1,4,5,6,8。
3.求下列两个矩阵之和(即对应元素之和)。
12341357
56789111315
910111217192123
4.打印出以下的杨辉三角形(要求打印10行)。
1
1 1
121
1331
14631
15101051
…………………
第八章指针
书面作业:
一、选择题8.1-题8.10
二、判断题8.11-题8.20
三、填空题8.21、题8.22、题8.23、题8.26、题8.27
四、阅读程序题8.31、题8.32
五、程序填空题8.35、题8.36
六、编程题8.37、题8.43
补充编程题:
1.编一个程序,输入15个整数存入一维数组,再按逆序重新存放后再输出。
2.输入一个一维实型数组,输出其中的最大值、最小值和平均值。
3.输入一个3×6的二维整型数组,输出其中最大值、最小值及其所在的行列下标。
九章构造数据类型
作业:
一、选择题9.1-题9.10
二、判断题9.11-题9.20
三、填空题9.21-题9.30
四、阅读程序题9.3、题9.34
五、程序填空题9.35
六、编程题9.38
补充编程题:
3.用结构体存放下表中的数据,然后输出每人的姓名和实发数(基本工资+浮动工资–支出)。
姓名
基本工资
浮动工资
支出
Zhao
qian
sun
240.00
360.00
560.00
400.00
120.00
0.00
75.00
50.00
80.00
9.编一个程序,输入10个员工的标号、姓名、基本工资、职务工资,求出其中“基本工资+职务工资”最少的员工姓名并输出。
10.编一个程序,输出10个学生的学号、姓名、3门课程的成绩,求出总分最高的学生姓名并输出。
第十章文件
作业:
一、选择题10.1-10.10
二、判断题10.11-10.20
三、填空题10.21-30
四、程序填空题10.31、10.32
五、编程题10.37
补充作业:
1.编一个程序,从键盘输入200个字符,存入名为“f1.t”的磁盘文件中。
2.从上一题中建立的名为f1.txt的磁盘文件中读取120个字符,并显示在屏幕上。
3.输入100个学生的信息(含学号、姓名、年龄、7科成绩、总分),统计所有学生的总分,然后存入磁盘二进制数据文件student.dat中。
然后再读取该文件,寻找总分最高的学生并输出该生的所有信息。
第三部分大作业:
1单项选择题
1、在C语言程序设计中引用数据元素时,其数组下标的数据类型允许是_______。
A)字符常量B)浮点型常量
C)整型常量或整型表达式D)任何类型的表达式
2、当调用函数时,实参是一个数组名,则向函数传送的是_________。
A)数组的长度B)数组的首地址
C)数组每一个元素的地址D)数组每个元素中的值
3、设有以下说明语句
structex
{intx;floaty;charz;}example;
则下面的叙述中不正确的是__________-。
A)struct结构体类型的关键字B)example是结构体类型名
C)x,y,z都是结构体成员名D)structex是结构体类型
4、以下叙述中错误的是______。
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)利用fread函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
5、以下各语句中,字符串“abcde”能正确赋值的操作是。
A)chars[5]={‘a’,’b’,’c’,’d’,’e’};B)char*s;s=”abcde”;
C)char*s;gets(s);D)chars[6];scanf(“%s”,&s);
6、已知:
chars[20]="language",*ps=s;则不能引用字母n的表达式是_________。
A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps
7、下面程序的输出结果是__________。
main()
{inta[]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf(“%d\n”,*p+9);}
A)0B)1C)10D)9
8、已知:
inta,x;则正确的赋值语句是____________。
A)a=(a[1]+a{2})/2B)a*=*a+1;
C)a=(x=1,x++,x+2);D)a="good";
9、对于下述定义,不正确的叙述是___________。
uniondata
{inti;charc;floatf;}a,b;
A)变量a所占内存的长度等于成员f的长度
B)变量a的地址和它的各成员地址都是相同的
C)可以在定义时对a初始化
D)不能对变量a赋值,故a=b非法
10、若有以下定义和语句
inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL; 则以下语句中错误的是_____。
A)*q=0;B)w=p;C)*p=a;D)*p=*w;
11、若有下列定义:
intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*p)[3]=x;
则能够正确表示数组元素a[1][2]的表达式为。
A)*(*(p+1)+2)B)*((*p+1)[2])C)*(*(p+5))D)*((*p+1)+2)
12、若有语句
chars1[]="string1",s2[8],*s3,*s4="string2";
则是对库函数strcpy的错误调用。
A)strcpy(s1,"string1");B)strcpy(s4,"string2");
C)strcpy("string2",s2);D)strcpy(s3,"string1");
13、以下程序的输出结果是________.,
main()
{charst[20]=“hello\0\t\\\”;
printf(%d%d\n”,strlen(st),sizeof(st));
}
A)99B)520C)1320D)2020
14、有以下程序
#include
main(intargc,char*argv[])
{inti,len=0;
for(i=1;iprintf("%d\n",len);
}
程序编译连接后生成的可执行文件是ex1.exe,
若运行时输入带参数的命令行是:
ex1abcdefg10<回车>
则运行的结果是__________。
A)22 B)17 C)12D)9
15、执行下面的语句后,输出结果为______