浙江万里学院C语言程序设计专升本

本试卷为浙江万里学院C语言程序设计专升本,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

C语言程序设计专升本

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、以下叙述中错误的是________。
A、算法正确的程序最终一定会结束
B、算法正确的程序可以有零个输出
C、算法正确的程序可以有零个输入
D、算法正确的程序对于相同的输入一定有相同的结果
(  B  )
2、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是________。
A、a[0][4]
B、a[l][3]
C、a[0][3]
D、a[1][4]
(  B  )
3、以下程序的输出结果是________。
main()
{
int x=0.5;
char z='a';
printf("%d\n",(x&1)&&(z<'z'));
}
A、0
B、1
C、2
D、3
(  B  )
4、若有定义:"int*p,x=0,*p,p=&x;",则语句"printf("%d\n",*p);"的输出结果是________。
A、随机值
B、0
C、x的地址
D、P的地址
(  D  )
5、对下面程序段,描述正确的是________。 for(t=1;t<=100;t++)
{
scanf("%d",&x);
if (x<0) continue;
printf("%d\n",t);
}
A、当x<0时,整个循环结束
B、当x>=0时,什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数
(  D  )
6、b等于( )
A、1000字节
B、1024字节
C、1000×1000字节
D、1024×1024字节
(  B  )
7、字符串 "\\\"abc\"\\" 的长度是______。
A、11
B、7
C、5
D、3
(  B  )
8、请选出可以作为c语言用户标识符的一组标识符号
A、void define WORD
B、a3_b3 _123 1F
C、for ―abc case
D、2a D0 sizeof
(  C  )
9、下列关于break语句的描述,不正确的是________。
A、break语句可用在循环体内,它将使执行流程跳出本层循环体
B、break语句可用在switch语句中,它将使执行流程跳出当前switch语句
C、break语句可用在订语句中,它将使执行流程跳出当前if语句
D、break语句在一层循环体中可以出现多次
(  B  )
10、在下面的运算符中,不是算术运算符的是________。
A、++
B、==
C、%
D、+
(  C  )
11、关于函数返回值类型和返回值表达式的类型的描述中,错误的是________。
A、函数返回值类型决定了返回值表达式的类型
B、函数返回值的类型是在定义函数时确定的,在函数调用时不能改变
C、函数返回值的类型就是返回值表达式的类型
D、函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成函数返回值类型
(  C  )
12、若定义下列结构体,结构体变量p的出生年份赋值正确的语句是________。
struct st
{
int x;
int y;
int z;
}
struct worker
{
char name[20];
char sex;
struct st birth;
} p;
A、x=1987
B、birth.x=1987;
C、p.birth.x=1987;
D、x=1987;
(  C  )
13、以下程序输出的结果为 ______。
main()
{
char *alpha[6]={"abcd","efgh","ijkl","mnop","qrst","uvwx"};
char **p;
int i;
p=alpha;
for(i=0;i<4;i++) printf("%s",p[i]);
}
A、ABCDEFGHIJKL
B、ABCD
C、ABCDEFGHIJKLMNOP
D、AEIM
(  A  )
14、若有定义语句: char*s1="ok",*s2="ok"; 以下选项中,能够输出"ok"的语句是______。
A、if(strcmp(s1,s2)=0)puts(s1);
B、if(strcmp(s1,s2)!=0)puts(s2);
C、if(strcmp(s1,s2)==1)puts(s1);
D、if(strcmp(s1,s2)==0)puts(s1);
(  D  )
15、设有以下语句
typedef struct tt
{
char c;
int a[4];
}
cin;
则下面叙述中正确的是______。
A、可以用TT定义结构体变量
B、TT是struct类型的变量
C、可以用CIN定义结构体变量
D、CIN是struct TT类型的变量
(  D  )
16、下列运算符结合性不同的是________。
A、+
B、%
C、/
D、=
(  D  )
17、下面定义结构变量的语句中错误的是________。
A、struct student{
int num; char name[20];
} s;
B、struct {
int num; char name[20];
} s;
C、struct student{
int num; char name[20];
};
struct student s;
D、struct student{
int num; char name[20];
};
student s;
(  B  )
18、假定所有变量均已正确定义,下列程序段运行后x的值是________。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
A、14
B、4
C、15
D、3
(  D  )
19、若有以下的定义:int t[3][2];
能正确表示t数组元素地址的表达式是________。
A、&t[3][2]
B、t[3]
C、&t[1]
D、t[2]
(  A  )
20、以下不是无限循环的语句为________。
A、for(y=0,x=1;x>++y;x=i++) i=x;
B、for(;;x++=i);
C、while1){x++;}
D、for(i=10;;i--) sum+=i;

二、填空题 (共10题,每题2分,共计20分)

1、从键盘上输入10个数,求其平均值,填空_______。
main()
{
int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{
________ ;
________ ;
}
printf("average=%f\n",sum/10);
}
2、int *p 的含义是 ________ 。
3、全局变量又称外部变量,是在函数______定义的变量。
4、有函数调用fun1(x+y, (y,z), 10, fun((x,y-1)));
函数fun1有【1】个参数。
5、int a = 0; a+=(a=8); 求a的最后结果
6、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
7、以下程序的运行结果是________。
main()
{
int i=5;
printf("%d\n",sub(i));
}
sub(int n)
{
int a;
if(n==1) return 1;
a=n+sub(n-1);
return a;
}
8、当运行以下程序时,输入abcd,程序的输出结果是:________。 insert(char str[])
{
int i;
i=strlen(str);
while(i>0)
{
str[2*i]=str[i];
str[2*i-1]=′*′;
i--;
}
printf("%s\n",str);
}
main()
{
char str[40];
scanf("%s",str);
insert(str);
}
9、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在 内填入正确的内容。
#include <stdio.h>
void main()
{
char c;
c=getchar();
if(c>=’a’&&c<=’u’) ;
else if(c>=’v’&&c<=’z’) ;
putchar(c);
}
10、数学表达式a<b<=c改写为c语言表达式是__________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:编写input()和output()函数输入,输出5个学生的数据记录。
2、要求输出国际象棋棋盘。
3、从键盘上输入一个字符串, 计算字符串里有多少个空格、小写字母、大写字母、数字。