main( ) { FILE *fp; char ch;
if((fp=fopen(″file1.c″,″r″))= =NULL) { printf(″Cannot open file \\n″); exit(0); }
while(!feof(fp)) {
ch=fgetc(fp);if(ch>=′A′&&ch<=′Z′)fputc(ch+32,stdout); } fclose(fp); }
四、程序填充题(本大题共3小题,每小题6分,共18分) 给出下列程序,将横线处缺少的部分补上,使其能正确运行。 36.将一个十进制整数n转变为二进制数。
main( )
{ int i=0,j,n,num[20];
scanf(″%d″, ); /*第一空*/ while(n!=0)
{ num[i++]= ; /*第二空*/ n= ; /*第三空*/ }
for(j=i-1;j>=0;j--)printf(″%d″,num [j]); }
37.一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。
main( ) {union data { int a[10];
int b ;/*第一空*/ }; union data ab; int i,j;
for(i=0;i<10,i++)
scanf(″%d″, ); /*第二空*/ for(i=0;i<2;i++) for(j=0;j<5;j++)
printf(″]″, );/*第三空*/ }
38.用指针法输出二维数组,每行三个数。
main( )
{int i,j,a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3]; ; /*第一空*/
第 16 页
for(i=0;i<3;i++) {
for(j=0;j<3;j++) printf(″]″, ); /*第二空*/ ;/*第三空*/ } }
五、程序设计题(第39小题5分,第40、41小题各6分,共17分)
39.输出100之内所有个位数字为6且能被3整除的自然数。(如:36,66,96??) 40.键入一串字符(换行符结束),用循环语句将其中的大小写英文字母互换后输出。 41.设int a[3][4];先为数组输满数据,再将该数组周边的元素输出(元素输出次序不限)。
第 17 页
高级语言程序设计(一)答案2003年10月
第 18 页
第 19 页
全国2005年10月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. 下列不.属于..C语言保留字的是( ) A. char B. while C. typedef
D. look
2. 下列关于C语言的叙述错误..的是( ) A. 英文字母大小写不加以区分
B. 不同类型的变量可以出现在同一个表达式中 C. 在赋值表达式中赋值号两边的类型可以不同 D. 某些运算符在不同的场合可以有不同的含义 3. 下列转义字符中错误..
的是( ) A. ′\\000′ B. ′\\14′ C. ′\\x111′ D. ′\\2′ 4. 执行语句printf(″%x″, -1);后输出结果是( ) A. -1 B. -ffff C. 1 D. ffff
5. 设float a=2, b=4, c=3;,以下C语言表达式与代数式12(a+b)c计算结果不一致...的是( A. (a+b)*c/2 B. (1/2)*(a+b)*c C. (a+b)*c*1/2 D. c/2*(a+b)
6. 设int a=10, b=20, c=30;条件表达式a
7. 设int a=9, b=6, c;,执行语句c=a/b+0. 8;后c的值是( ) A. 1 B. 1. 8 C. 2 D. 2. 3
8. 执行语句for(i=1;i++<4);后i的值是( ) A. 3 B. 4 C. 5 D. 不确定
9. 在位运算中,操作数左移一位,其结果相当于操作数( ) A. 乘以2 B. 除以2 C. 乘以4 D. 除以4
第 20 页
)