1、广技师专插本C语言程序设计专业课真题广东技术师范学院 2017 年专插本 C语言程序设计注意:请将答案写在答题纸上,否则无效! !一、判断题: (12 分 每题 2 分)1、C 语言规定 :在一个源程序中 ,main 函数的位置必须在最开始。2、假设所有变量均为整型 ,则表达式 (a=2,b=5,b+,a+b) 的值是 8 。3、凡是函数中未指定存储类别的局部变量 ,其隐含的存储类别为静态存储。4、C 语言中规定函数的返回值的类型是由 return 语句中的表达式类型所决定。5 、在 C 语言中对文件操作必须先关闭当前文件,然后再打开一个新文件。6、 C 语言程序的基本单位是语句。二、选择题:
2、 (20 分 每题 2 分)1、假设已定义 char a10 和 char *p=a, 下面的赋值语句中,正确的是:A ) a10= ” Turbo C ”; B) a= ”Turbo C ” ;C) *p= ” Turbo C ”; D) p= ”Turbo C ”;2、下面关于运算符优先顺序的描述中正确的是:A)关系运算符 算术运算符 赋值运算符 逻辑与运算符B)逻辑 运算符 关系运算符 算术运算符 赋值运算符C)赋值运算符 逻辑与运算符 关系运算符 算术运算符D) 算术运算符 关系运算符 赋值运算符 逻辑与运算符3、以下正确的描述是。A)continue 语句的作用是结束整个循环的执行B
3、)只能在循环体内和 switch 语句体内使用 break 语句C)在循环体内使用 break 语句或 continue 语句的作用相同D)从多层循环嵌套中退出时 , 只能使用 goto 语句4、用 8 位无符号二进制数能表示的最大十进制数为A)127 B) 128 C) 255 D)2565、下列叙述中正确的是:A)C 语言中既有逻辑类型也有集合类型B)C 语言中没有逻辑类型但有集合类型C)C 语言中有逻辑类型但没有集合类型D)C 语言中既没有逻辑类型也没有集合类型6、以下对 C 语言函数的有关描述中,正确的是:A )调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)函数既可以
4、嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)程序中有调用关系的所有函数必须放在同一个源程序文件中7 、在 C 语言中,不正确的 int 类型的常数是 :A)32768 B)0 C) 037 D) 0xaf8、以下叙述中不正确的是:A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效9、以下说法中正确的是:A)#define 和 printf 都是 C 语句B)#define 是 C 语句,而 printf 不是C)printf 是 C 语句,但 #defi
5、ne 不是D)#define 和 printf 都不是 C 语句10 、若有以下定义和语句: double r=99 , *p=&r ; *p=r ;则以下正确的叙述是:A) 以下两处的 *p 含义相同,都说明给指针变量 p 赋值B)在“ double r=99 , *p=&r ;”中,把 r 的地址赋值给了 p 所指的存储单元C)语句“ *p=r ;”把变量 r 的地址值赋给指针变量 pD)语句“ *p=r ;”取变量 r 的值放回 r 中三、填空题: (24 分 每空 2 分)1、下面程序的功能是:输入一行字符,统计其中有多少个单词,单词之间用空格分开。请填空完成。# include ma
6、in()char str81;int i,( 【1】 ) ;char c;gats(str);for(i=0 ;( 【2】 )!= 0 ;i+) if(c= )word=0;else if( 【 3】 )word=1;,num);printf( “ There are %d word in line. n2、下面程序的功能是:用选择排序法对数组中 10 个数据按由小到大排序。请填空完成。 void sort(int a,int n)( 【 5】 )for(I=0;In-1;I+) ( 【6】 ) for(j=I+1;jn;j+)if(ajak)k=j;if( ( 【 7】 )t=ak;ak=a
7、I;aI=t;main()int b10,I;printf( “ enter the arrayn ”);for(I=0;I10;I+)scanf( “ %d ” .&bI);( 【8 】 )printf( “the sorted array: n ” );for(I=0;I10;I+)printf( “%d “ ,bI);printf( “ n ” );3、判断 m 是否是素数#include main()int m,i,k;scanf( “%d ” ,&m); ( 【9】 )for(i=2;i=k+1) printf( “ %d is a prime numbern ”,m);else p
8、rintf( “ %d is not a prime numbern ” ,m);4、假设当年产值为 100 ,工业产值的增长率分别为 6%、8%、10% 、 12%时, 求工业产值分别经过多少年可实现翻番。请填空完成。main()int y4,i;float s4=100,100,100,100,c4=.06,.08,.10,.12;clrscr();for(i=0;i8;y=+I)printf( “%d %d ”,x-,y);2、 main()int m=37,n=13;while(m!=n)while(mn)m=m-n;while(nm)n-=m;printf( “m=%dn ” ,m)
9、;3、 main() int x=9;for(;x0;x-)continue; 4、 main() int a=7,b=2;float x=2.5,y=4.7,z ;z=x+a%3*(int)(x+y)%2/4; printf( “%fn ” ,z);z= (a+b)/2+(int)x%(int)y; printf( “%f ”,z);5、 main()int x=0,1,2,3,4,5,6,7,8,9;int s,I,*p;s=0;p=&x0;for(I=1;I10;I+=2)s+=*(p+I);printf( “sum=%d ” ,s);6、 main()int k=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%d,p);func(int a,int b)static int m=0,i=2;i+=m+1;m=i+a+b;return(m);五、编程题: (20 分 每题 10 分 )1 、利用指针完成。输入两个整数,按先大后小的顺序输出。2 、编程完成两个字符串的连接。 (不使用 strcat( ) 函数)。