1、一、选择填空(选择一个正确答案,将其对应字母填在横线上)(25分)1 C程 序 中,unsigned int x;定 义 变 量 取 值 范 围 为 ;A:0255 B:065535 C:032767 D:021474836472C语言中,正确字符与字符串表示方式为 ;A:char a=a,b=“abc”;B:char a=a,b=“abc”;C:char a=“a”,b=“abc”;D:char a=a,b2=“abc”;高级语言程序设计(C语言)(第二学期)BB第1页3若a是float型变量,b是int型变量,以下输入语句正当是 ;A:scanf(“%6f%f”,&a,&b)B:scanf
2、(“%8f%d”,&a,&b)C:scanf(“%6d%d”,&a,&d)D:scanf(“%6f%c”,&a,&d)4假如i=1,执行j=+i;k=i+;其j、i和k值是 ;A:2,2,2;B:1,2,3;C:1,1,1;D:2,3,25在if(条件)语句执行时,当条件为 时C语言认为是“真”;A:TRUE;B:.T.C:0 D:非零值BDD第2页6假如int a4=1,2,3,4,*p=&a2;执行p+;其*p+a0值为 ;A:2 B:3 C:4 D:57设int a,b,c;且a=10;b=4;a/=b;则表示式 (a/b?b+a:b-a)之值是 ;A:0.5 B:6;C:2;D:-28
3、对于int a10;正确赋值语句是 _ ;A:*(a+2)=4;B:a=6;C:a+2=4;D:*(a+15)=4;9 设 int x,a,b,c;计 算 表 示 式 x=(a=4,b=16,c=32)后,x值 是 ;A:4 B:16 C:32 D:52DACC第3页10对于int a 3=1,2,3,4,5,6,7,8,9,10说明语句,数据元素a12+a31值为_;A:15 B:16 C:8 D:611int n=97;switch(n/10-4)case 2:n=n+1;case 3:n=n*2;case 5:n=n-2;case 7:n=n+3;break;default:n=n/2;
4、n正确结果值是_ A:95 B:96 C:97 D:98DD第4页12已知int i=j=2;char*a=abcdefg,c;执行c=*(a=a+3);c值是_。Ab B:c C:d D:e13阅读以下程序,结果是_。main()int a=5,b=0,c=0;if(a=b+c)printf(*n);else printf(#n);A:语法有错误,不能编译 B:输出*C:经过编译,但不能连接 D:输出#CD第5页14for(;3;);代表意义是 ;A:死循环 B:不循环 C:循环3次 D:语法错误15 对 于 表 示 式 53/2&!0和!(153|56-8)逻 辑 值,分 别 是 ;A:0
5、,1 B:1,0 C:0,0;D:1,116有时需要使几个不一样类型变量存放到在一起,形成一个变量,这种变量,称为 ;A:结构体变量 B:字符变量 C:整型变量 D:实数变量17设char w;int x;float y;double z;表示式w*x+z-y值数据类型为_;A:char B:int C:float D:doubleABAD第6页18有以下程序段CFILE*fp;fp=fopen(“a1”,“r”);其表示为_;A:定义了一个普通指针,函数值给指针赋值。B:定义了一个文件a1C:打开一个文件,该文件可读可写 D:打开一个文件,该文件只能读不能写19下面对数组定义正确是_;A:i
6、nt n=10;int arrayn;B:int array10;C:int n;scanf(“%d”,&n);int arrayn;D:int n;int arrayn;scanf(“%s”,array);BD第7页20下面各语句行中,能正确进行赋字符串操作语句行是_ A:char s45=abcd,123;B:char s5=a,b,c,e,f;C:char*s;s=abcd;D:char s5;s=abcd;21.在一个C语言程序组成中,较完整描述是_ A:由主程序与子程序组成 B:由多个主函数与多个子函数组成C:由主函数与子函数组成 D:由一个主函数与多个子函数组成DC第8页22 C语
7、言在程序开始执行时,其正确描述是_;A:由编写程序语句次序格式执行 B:在主函数main()开始处执行C:在第一个子函数处执行 D:由人随机选择执行23.以下相关函数错误描述是_;A:C语言中允许函数嵌套定义 B:C语言中允许函数递归调用C:调用函数时,实参加形参个数、类型需完全一致D:C语言函数缺省数据类型是int类型AB第9页24.在C语言中,函数返回值类型是由_;A:在程序编译时决定 B:由调用该函数主调函数所决定C:由return表示式类型所决定 D:由定义该函数时指定函数类型所决定25当调用函数时,假如实参是一个数组名,则向函数传送是_。A:数组首元素 B:数组首地址C:数组每个元素
8、地址 D:数组每个元素中值BD第10页二读以下程序,给出程序运行结果(30分)1main()int i,j,m,n;i=5;j=6;n=10;m=+i;n/=j+;printf(“m1=%d n1=%d”,m,n);m=i+;n=+j;printf(“m2=%d n2=%d”,m,n);结果:m1=6 n1=1 m2=6 n2=8第11页2main()int a20,b=1;for(a0=b;b7)break;b+;printf(“a=%d”,ab);结果:a=10 第12页3#include“stdio.h”main()char ch;scanf(%c,&ch);if(ch=B&chM)pu
9、tchar(ch+32);else putchar(ch);输入 M,运行结果为:_;输入 b,运行结果为:_。结果:输入M 结果 M 输入b 结果 b第13页4main()int a33=1,2,3,4,5,6,7,8,9;int*p1=&a12,*p2=a+2;printf(%d,%dn,*p1,*p2);printf(%d,%dn,*(+p2),a22);输出为:_ 结果:6,7 8,9第14页5main()int i;char*p,b10;p=“abcde”;for(i=0;i3;i+)bi=*p;p+;bi=0;printf(“%s”,b);输出为:b=结果:abc 第15页6.#i
10、nclude stdio.h int fun(int x)int y=0;static z=3;y+;z+;return(x+y+z);main()int a=2,i;for(i=0;i3;i+);printf(t%d,fun(a);结果为:。结果:7第16页三填空题(25分)1假如p是一个指针,那么*&p表示含义是 ,而&*p表示含义是 。2已知数组s为一有8个单元整型数组,下面语句语句试图求出这8个单元平均值,并用ave保留这个值;请补充完整下面语句。int j,s=1,2,3,4,5,6,7,8,sum=;for(;j+);ave=/8;3变量在程序使用中,其作用域可分为 _ 变量和 _
11、 变量。指针p所指向地址内容 p指针所指向内容地址 0 j=0 j8 sum+=sisum 全局局部 第17页4打印以下列图案,选择适当句子填入该程序空格中。0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0#includevoid a(int i)int j,k;for(j=0;j7-i;j+)printf(“”);for(k=0;_;k+)printf(“0”);printf(“n”);main()int i;for(i=0;i=0;i-)_;a(i)k=2*ia(i)第18页5用选择法对数组为n个整数进行由大到小排序,选择适当句子填入该空格
12、中。#defin N 100main()int i,aN,n;scanf(%d,&n);void sort(int array,int n);for(i=0;in;i+)scanf(%d,&ai);sort(a,);printf(the sorted array:n);for(i=0;i15;i+)printf(%d,ai);void sort(_,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jarrayk k=;t=arrayk;arrayk=arrayi;arrayi=t;int array n j 第19页6.下面程序功效是输入5个整数
13、,找出最大数和最小数所在位置,并把二者对调,然后输出调整后5个数,选择适当句子填入该程序空格中。main()int a5,max,min,i,j,k;for(i=0;i5;i+)scanf(“%d”,&ai);min=a0;for(i=1;i5;i+)if(aimin)min=ai;_;max=a0;for(i=1;imax)max=ai;_;_;printf(“nThe position of min is:%3dn”,k);printf(“The position of max is:%3dn”,j);for(i=1;i5;i+)printf(“%5dn”,ai);j=i k=i ak=m
14、ax;aj=min 第20页四编写程序(20分)1经过键盘输入10整数在一维数组中,而且把该数组中全部为偶数数,放在另一个数组中。main()int a10,b10,i,j,n;printf(please input array a:);for(i=0;i10;i+)scanf(%d,&ai);for(i=0,j=0;i10;i+)if(ai%2=0)bj=ai;j+;printf(array b:);for(n=0;nj;n+)printf(%4d,bn);第21页 2在两题中,可选择其中一题。(1)编写一个累加求和子函数,在主函数中调用其子函数,实现1100中偶数求和;main()int
15、n,c;c=add();printf(the sum is:%d,c);add()int i,s=0;for(i=1;i=100;i+)if(i%2=0)s=s+i;return(s);第22页(2)编程求一个n*n矩阵主对角线元素求和子函数,在主函数中输入n以及矩阵各元素值(设该矩阵元素均为整型数据)。main()int n,i,j,a100100;printf(please input n:);scanf(%d,&n);printf(please input array:);for(i=0;in;i+)for(j=0;jn;j+)scanf(%d,&aij);printf(the sum is:%d,sum(a,n);sum(int b100100,int m)int i,j,s=0;for(i=0;im;i+)for(j=0;jm;j+)if(i=j)s=s+bij;return(s);第23页