湖南科技大学历年计算机C语言专升本复习题
本试卷为湖南科技大学历年计算机C语言专升本复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言专升本复习题
一、理论基础 (共20题,每题1分,共计10分)
( D )
1、若有定义"double a;",则正确的输入语句是________。
( C )
2、为了避免嵌套的条件分支语句if-else的二义性,c语言规定:c程序中的else总是与( )组成配对关系。
( B )
3、以下变量声明中正确的是________。
( C )
4、若有代数式(3ae)/( ),则下面不正确的c语言表达式是________。
( C )
5、以下叙述错误的是________。
( B )
6、下列属于c语言保留字的是________。
( A )
7、设int i=3,j=3; 表达式i+++j的值是________。
( D )
8、下列4种不同数制表示的数中,数值最小的一个是________。
( B )
9、在位运算中,操作数每右移一位,其结果相当于( )
( D )
10、以下选项中,能用作数据常量的是________。
( B )
11、下列关于八进制与十六进制的描述中,错误的是________。
( B )
12、c语言提供的合法的数据类型关键字是______?
( B )
13、关于字符型变量的定义,下列选项正确的是________。
( B )
14、以下叙述中错误的______。
( C )
15、程序运行输出了错误的结果,可以排除下列哪一个因素。
( C )
16、计算表达式*执行下面的程序段,变量 b 的值将变为 ▁▁▁▁▁。double a = 3, b; b = 1 / 2 + a;
( C )
17、设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n)则执行语句:z=2 * (N+Y(5+1)); 后,z的值为________。
( D )
18、下列个选项中,合法的c语言关键字是________。
( B )
19、对for( 表达式1; ;表达式3)可理解为________。
( A )
20、设 int b=2; 表达式(b>>2)/(b>>1) 的值是________。
二、控制结构 (共10题,每题1分,共计10分)
( B )
1、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( D )
2、c语言对嵌套的if语句的规定是:else总是与 配对。
( D )
3、若int i=10;
执行下列程序后,变量i的正确结果是________。 switch (i)
{
case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
( C )
4、有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是________。
( B )
5、下列表达式为关系表达式的为_________。(其中a为一整型变量)
( A )
6、若x和y是程序中的两个整型变量,则下列if语句中正确的是________。
( A )
7、下列叙述中正确的是________。
( A )
8、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
( A )
9、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
( B )
10、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、设有程序段: int k=12; while(k=1) k=k-1; 则下列描述中正确的是________。
( D )
2、程序段如下:则以下说法中不正确的是: 。
#include <stdio.h>
main()
{
int k=2,;
while(k<7)
{
if(k%2)
{
k=k+3;
printf( " k=%d\n " ,k);
continue;
}
k=k+1;
printf( " k=%d\n " ,k);
}
}
( B )
3、以下关于switch语句和break语句的描述中,正确的是______。
( B )
4、以下选项中与if(a==1)a++; else a=b; 语句功能不同的语句是________。
( C )
5、运行下面程序时,从键盘输入字母a,则输出结果是________。
#include<stdio.h>
main()
{
char ch;
ch=getchar();
switch(ch)
{
case'a':printf("aaaa\n");
case'b':printf("bbbb\n");
default:printf("cccc\n");
}
}
( D )
6、有以下程序
#include<stdio.h>
main ()
{
int i, n;
for (i = 0; i < 8; i++)
{
n = rand () % 5;
switch (n)
{
case 1:
case 3:
printf ("%d\n", n);
break;
case 2:
case 4:
printf ("%d\n", n);
continue;
case 0:
exit (0);
}
printf ("%d\n", n);
}
}
以下关于程序执行情况的叙述,正确的是______。
( A )
7、有以下程序
main()
{
int i=0,s=0;
do
{
if(i%2)
{
i++;
continue;
}
i++;
s+=i;
}
while(i<7);
printf("%d\n",s);
}
执行后输出的结果是______。
( D )
8、下面程序的输出是______。
main( )
{
int x=3 ,y=6,a=0;
while(x++!=(y-=1) )
{
a+=1;
if (y<x) break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
( B )
9、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++) 则以上 for 循环()
( D )
10、以下叙述正确的是()。
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、若有如下定义,则________是对数组元素的正确的引用 int a[10], *p ; p=a;
( C )
2、以下对二维数组a的正确说明是________。
( D )
3、在c语言中对一维整型数组的正确定义为 。
( B )
4、已知char x[]="hello", y[]={ 'h','e','a','b','e' }; 则关于两个数组长度的正确描述是________。
( A )
5、若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设 a[0] [0]位于数组的第一个位置上) ________。
( C )
6、以下定义:int(*p)[4]中,标识符p是________。
( C )
7、以下定义数组中错误的是________。
( D )
8、对两个数组a和b进行如下初始化: char a[]="abcdef"; char b[]= {'a','b','c','d','e','f' } 则以下叙述正确的是________。
( C )
9、以下程序输出的结果为 ______。
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]);
}
( C )
10、假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是________。double length [10];
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下能正确定义字符串的语句是________。
( A )
2、下列数据中属于"字符串常量"的是________。
( B )
3、字符串 "\\\"abc\"\\" 的长度是______。
( B )
4、下列关于串的叙述中,哪一条是正确的( )
( C )
5、顺序执行下列程序语句后,则b的值是 string a="hello"; string b=a.substring(0,2);
( C )
6、若有定义: char str1[10] = "aaaaaaa"; char str2[10] = "bbbbb"; 将字符串str2连接到str1,则下列描述中正确的是________。
( B )
7、下列数据中属于"字符串常量"的是________。
( A )
8、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
( A )
9、从键盘上输入某字符串时,不可使用的函数是()。
( B )
10、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( B )
1、若函数中有定义语句:int k; 则
( D )
2、________不属于程序的基本控制结构。
( D )
3、决定c语言中函数的返回值类型的是________。
( A )
4、下列程序的运行结果是________。
#include<stdio.h>
void sub(int*s,int*y)
{
static int m=4: *y=s[m];
m--;
}
void main()
{
int a[]={1,2,3,4,5},k,x;
printf("\n");
for(k=0;k<=4;k++)
{
sub(a,&x);
printf("%d,",x);
}
}
( C )
5、有以下函数: int fun(char *x, char *y)
{
int n=0;
while((*x==*y)&&*x!=’\0’)
{
x++;
y++;
n++;
}
return n;
}
函数的功能是________。
( B )
6、以下程序的输出结果是________。
#include<stdio.h>
int m=13;
int fun(int x,int y) {
int m=2;
return(x*y-m);
}
main()
{
int a=7,b=6;
printf("%d",fun(a,b)/m);
}
( B )
7、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为________。
( D )
8、c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是________。
( C )
9、对c语言程序,以下说法正确的是________。
( D )
10、以下叙述中正确的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、以下函数的功能是:求x的y次方,请填空。
main( )
{
int i,x,y;
double z;
scanf("%d %d",&x,&y);
for(i=1,z=x;i<y;i++) z=z*________ ;
printf("x^y=%e\n",z);
}
( D )
2、已知 short int 类型变量占用两个字节 , 若有定义 : short int x[10]={ 0,2,4 }; 则数组 x 在内存中所占字节数是 __________.
( A )
3、执行下面的程序段后,变量k的值为________。 int k=3,s[2]; s[0]=k; k=s[1]*10;
( D )
4、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]= { 5,4,3,2,1 },*p[]= { a+3,a+2,a+1,a },**q=p;
( C )
5、若已定义: int a[]= { 0,1,2,3,4,5,6,7,8,9 },*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是________。
( C )
6、下列关于形参的说法,正确的是________。
( A )
7、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是______。
( A )
8、下列关于strstr()函数的描述,错误的是________。
( B )
9、字符串指针变量中存入的是________。
( B )
10、在 C语言程序中()。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、以下选项中不能正确把cl定义成结构体变量的是________。
( D )
2、设有下面的定义:
struct st
{
int a;
float b;
} d;
int*p;
要使p指向结构变量d中的a成员,正确的赋值语句是________。
( D )
3、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
( B )
4、下面关于主程序的说法,错误的是________。
( B )
5、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
( D )
6、有以下程序
typedef struct
{
int b,p;
}
a;
void f(a c) /* 注意:c是结构变量名 */
{
int j;
c.b+=1;
c.p+=2;
}
main()
{
int i;
a a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是______。
( D )
7、以下叙述中正确的是________。
( B )
8、以下对枚举类型名的定义中正确的是________。
( A )
9、定义共用体的关键字是________。
( D )
10、在说明一个结构体变量时系统分配给它的存储空间是________ 。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、有以下程序
#include<stdio.h>
int fun() {
static int x=1;
x+=1;
return x;
}
main() {
int i;
s=1;
for(i=1;i<=5;i++) s+=fun();
printf("%d\n",s);
}
程序运行后的输出结果是________。
( C )
2、有以下程序 int a=2;
int f(int n)
{
static int a=3;
int t=0;
if(n%2)
{
static int a=4;
t += a++;
}
else
{
static int a=5;
t += a++;
}
return t+a++;
}
main()
{
int s=a, i;
for( i=0; i<3; i++) s+=f(i);
printf("%d\n", s);
}
程序运行后的输出结果是________。
( D )
3、下面程序段运行时输出结果是______。 char s[12]= "a book"; printf("%d\n",strlen(s));
( A )
4、已知 a=12, 则表达式 a+=a-=a*=a 的结果是 _________.
( A )
5、以下程序的输出结果是 __________.
#include <stdio.h>
void main()
{
int a[4][4]={{1,3,5,},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
( B )
6、已知字母a的ascii码为十进制数的97,下面程序的输出结果是______。
main()
{
char c1,c2;
c1='a'+'5'-'3';
c2='a'+'6'-'3';
printf("%c,%d\n",c1,c2);
}
( C )
7、已知小写字母a的ascii码为97,大写字母a的ascii码为65,以下程序的结果是______。
main()
{
unsigned int a=31,b=66;
pfintf("%c\n,a|b);
}
( C )
8、以下四个程序中,完全正确的是______。
( B )
9、以下程序段的输出结果是________。
int main(
void)
{
int num = 0, s = 0;
while(num <= 2)
{
num++;
s += num;
}
printf("%d\n",s);
return 0;
}
( B )
10、有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{
ptr=a+i;
scanf("%d",*ptr);
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++) printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是______。
相关标签:
- C语言
- 湖南科技大学
- 专升本复习题