五邑大学2015年通信工程(计算机通信网络)专业
本科插班生招生考试《C 语言程序设计》试题
考试形式为闭卷、笔试。考试时间为120分钟,试卷满分为100分。
一 判断题,正确划√,错误划×。(每题1分,共10分)
1.C 语言的源程序不必通过编译就可以直接运行。( )
2.在C语言中用到的任何一个变量都要规定其类型。( ) 3.C语言的标识符只能使用字母、数字和下划线三类字符,且第1位不能是数字字符。( )
4.continue 语句用在循环体中,可使整个循环不结束。( )
5.静态局部变量只在本函数内可用。( )
6.在do-while 循环中,任何情况下都不能省略while 。( )
7.char *p="girl";的含义是定义字符型指针变量p ,p 的值是字符串"girl"。( )
8.用fopen("file","r+"); 打开的文件"file"不能修改。( )
9.一个共用体变量只能存放其中一个成员的值。( )
10.在不出现溢出的情况下,将一个数左移n 位,相当于给它扩大2n 倍。( )
二 单项选择题,错选、漏选、多选不得分。(每题2分,共40分)
1.下面关于"A"的说法正确的是( )。
A ) 它代表一个字符常量
B ) 它代表一个字符串常量
C ) 它代表一个字符
D ) 它代表一个变量
2.若以下选项中的变量已正确定义,则正确的赋值语句是( )。
A ) x1=26.8%3 ;
B ) 1+2=x2 ;
C ) x3=0x12 ;
D ) x4=1+2=3;
3.为表示关系x ≥y ≥z ,正确C 语言表达式是( )。
A ) (x>=y)&&(y>=z)
B ) (x>=y) AND (y>=z)
C ) (x>=y>=z)
D ) (x>=z)&(y>=z)
4.设 a=5,b=6,c=7,d=8,m=2,n=2, 则执行 (m=a>b)&&(n=c A ) 1 B ) 2 C ) 3 D ) 4 5.设a=8、b=13,则printf("%d",(a>b)?a:b); 则输出结果是 ( )。 A ) 5 B ) 8 C ) 13 D ) 21 6.在C 语言中要求参加运算的数必须是整数的运算符是( )。 A ) / B ) ! C ) % D ) = = 7.设整型变量a 为5,使b 不为2的表达式是( )。 A ) b=a/2 B ) b=5-(---- a) C ) b=a>3?2:1 D ) b=a%2 8.若x=5,y=4 则y*=x+5; y 的值为( )。 A) 40 B) 20 C) 15 D) 30 9.关于break 语句的正确说法是( )。 A ) 无论在任何情况下,都中断程序的执行,退出到系统下一层。 B ) 在多重循环中,只能退出最靠近的那一层循环语句。 C ) 跳出多重循环。 D ) 只能修改控制变量。 10.设有定义:float a=2,b=4,h=3;,以下C 语言表达式与代数式计算结果不相符的是( )。 A ) (a+b)*h/2 B ) (1/2)*(a+b)*h C ) (a+b)*h*1/2 D ) h/2*(a+b) 19.设a=15,则表达式“(a=3*5,a*4),a+5”的值是( )。 A ) 15 B ) 60 C ) 20 D ) 75 20.结构化程序设计的基本结构不包含( )。 A ) 顺序 B ) 选择 C ) 循环 D ) 跳转 三 综合题。(第1-2题每题3分,第3-6题每题6分,共30分) 1.阅读以下程序代码,写出程序运行结果。 int main() { int i,sum=0; for(i=1;i<=20;i++) { sum+=i; } printf(“%d”,sum); return 0; } 程序运行后输出: 。 2.阅读以下程序代码,写出程序运行结果。 int main() { int i,j,x=0; for (i=0;i<2;i++) { for (j=0;j<3;j++) { if (j%2= =0) continue; x=x+1; } } printf(“%d”,x); return 0; } 程序运行后输出: 。 3.下列程序的功能是求10的阶乘,改正程序中存在的错误(错误行已标出,不可改动其他程序代码否则不能得分),使程序能正确运行并得到正确的结果。 int main() { int i=1,n=10; long t=1; do { t=t*i; i++; }while(i<=n) //此行错误,正确为: prinft(“%d ”,t); //此行错误,正确为: return 0; } 4.下列程序的功能是采用选择法对10个整数进行排序,改正程序中存在的错误(错误行已标出,不可改动其他程序代码否则不能得分),使程序能正确运行并得到正确的结果。 int main() { int a[10]={18,6,7,35,24,69,52,21,11,41}; int i,j,k,t; for(i=0; i<10; i++) { k=i; for(j=0;j t=a[i],a[i]=a[j],a[j]=t; //此行错误,正确为: } for(i=0;i<10;i++) printf(“%d ”,a[i]); return 0; } 5.下列程序为使用指针输出数组所有元素。阅读程序,将程序中缺少的代码补充完整,使程序能正确运行并得到正确的结果。(每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。) int main() { int *p,i,num[10]={1,2,3,4,5,6,7,8,9,10}; i=0; while(i<10) { printf(“%d “,*p); p++; } return 0; } 6.下列程序中的数组a 包括10个整型元素,从a 中第二个元素起,分别将后项减前项之差存入数组b ,并按每行3个元素的形式输出数组b 。阅读程序,将程序中缺少的代码补充完整,使程序能正确运行并得到正确的结果。(每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。) int main () { int a[10],b[10], i; for(i=0; i<10; i++) scanf(“%d”,&a[i]); for (i=1;i<10; i++) b[i]= ; for(i=1;i<10;i++) { printf(“%3d”, b[i]); if ( ) printf(“\n”); } } 四 编程题。(第1题8分,第2题12分,共20分) 1.编写函数strLen ,计算并返回给定字符串的长度。 2.编写反转函数reverse ,将输入的整数反转并返回,如:输入-1234转换成-4321,输入6853转换为3586。