计算机软硬件技术基础真题与答案(试卷、试题)
计算机软硬件技术基础
(本卷共分为1大题50小题,作答时间为120分钟,总分 100 分, 60及格)
1、 本题共50小题,每小题2分,共100分,在每小题给出的几个选项中,只有一项是符合题目要求的。 (单选题)
( ) 4. 下列不是C语言提供的合法关键字的是( )
A. switch
B. begin
C. case
D. default
答案: B
( ) 5. 以下叙述中正确的是( )
A. C 语言程序总是从第一个定义的函数开始执行
B. 在 语言程序中,要调用的函数必必须在 main 函数中定义
C. C 语言程序总是从 main 函数开始执行
D. C 语言程序中的 main 函数必须放在程序的开始部分
答案: C
( ) 6. 设有定义语句 int x=3,*p=&x ;,则值不为 3 的表达式是( )
A. x
B. *p
C. p+0
D. *&x
答案: C
( ) 7. 已知: int a=3,b=8 ;则表达式a%b的值为( )
A. 0
B. 0.375
C. 2
D. 3
答案: D
( ) 8. 以下程序的输出结果是( )
#include<stdio .h>
void sub ( int x ,int y ,int *z)
{ *z=y-x;
}
main ()
{ int a ,b,c;
sub ( 10,5,&a );
sub ( 7,a,&b );
sub ( a ,b,&c);
printf (" %d ,%d ,%d\n", a ,b,c);
}
A. 5,2,3
B. -5,-12,-7
C. -5,-12,-17
D. 5,-2,-7
答案: B
( ) 9. 设有定义语句: int x=3,*p=&x ;,则值不为 3 的表达式是( )
A. x
B. *p
C. p+0
D. *&x
答案: C
( ) 10. 有以下程序:
#include<stdio .h>
struct st
{ int x,y;
}data[2]={1, 10,2,20};
main ()
{ struct st *p=data;
printf (" %d ,", p->y);
printf (" %d\n ",(++ p )->x);
}
程序的运行结果是( )
A. 10,1
B. 20,1
C. 10,2
D. 20,2
答案: C
( ) 11. 设有数据定义语句 struct xyz{int x;float y;char z;}xyz1 ;,则下面的说法中错误的是( )
A. struct xyz 可以看成一种数据类型符
B. xyz是用户定义的结构类型名称
C. xyzl 可以用来定义该结构类型变量
D. x 是结构类型的成员名
答案: C
( ) 14. 一个完整的 C 程序由 构成。( )
A. 一个主程序和一个子程序
B. 一个主函数和若干个子函数
C. 一个主函数和一个其他函数
D. 一个主函数和若干个子程序
答案: B
( ) 15. 设有语句 int x[ ]={1,2,3,4,5,6},*p=x ;则值为 3 的表达式是( )
A. p+=2,*++ p
B. p+=2,*p++
C. p+=2 ,++*p
D. p+=3,*p
答案: B
( ) 16. 下面的程序的输出结果是( )
#include<stdio ,h>
main ()
{int a=- 1 ,b=4 ,k;
k=( a ++<= 0 ) && (!( b --<= 0 =));
printf (" %d %d %d\n", k,a ,b );
}
A. 0 0 3
B. 0 1 2
C. 1 0 3
D. 1 1 2
答案: C
( ) 17. 执行以下程序后,输出结果是( )
#include<stdio.h>
main ()
{ int y=10;
do
{y --;
}
while (--y);
printf (" %d ) n",y --);
}
A. -1
B. 1
C. 8
D. 0
答案: D
( ) 18. 若有定义语句 int m[]={5,4,3,2, 1} ,i=4 ;,则下面对数组 m 的数组元素的引用中
错误的是( )
A. m[--i]
B. m[2*2]
C. m[m[0]]
D. m[m[i]]
答案: C
( ) 19. 当执行以下程序段时( )
x=- 1;
do{x=x*x;
}
while ( !x);
A. 循环体将执行一次
B. 循环体将执行两次
C. 循环体将执行无限次
D. 系统将提示有语法错误
答案: A
( ) 20. 以下函数调用语句中含有的实参个数是( )
Func (( expl,exp2 ),( exp3,exp4,exp5 ));
A. 1
B. 2
C. 4
D. 5
答案: B
( ) 21. 执行下列C语言程序段,循环结束的条件是( )
Int n =0 ,p,sum=0;
do
{scanf (" %d", &p );
n ++;
sum+= p;
}
while ( sum!= 126&&n <5 );
A. sum的值不等于126或n的值小于5
B. sum的值不等于126且n的值小于5
C. sum的值等于126或n的值大于等于5
D. sum的值不等126且n的值大于等于5
答案: C
( ) 22. 下列程序的输出结果是( )
#include<stdio.h>
func2 ( int a,int b )
{ int c;
c=a*b%3;
return ( c);
}
funcl ( int a ,int b )
{ int c;
a+=a ;b+= b;
c=func2 ( a ,b );
return ( c*c);
}
main ()
{ int x =7,y= 17;
printf (" %d\n",funcl ( x,y));
}
A. 7
B. 17
C. 4
D. 0
答案: C
( ) 23. 下列说法错误的是( )
A. 在定义结构变量时不能给其赋初值
B. 可以取结构变量的地址
C. 可以取结构变量成员的地址
D. 结构类型的成员可以定义成该结构类型的指针类型
答案: A
( ) 24. 以下程序的输出结果是( )
#include “stdio .h”
int i=5;
main ()
{ int i =3;
{ int i= 10 ;i ++;
}
int f1 ();
i+= 1;
printf (" %d\n", i );
}
int f1 ()
{ i=i+1;
return ( i );
}
B. 4
C. 12
D. 6
答案: B
( ) 25. 计算机算法是指( )
A. 计算方法
B. 排序方法
C. 解决问题的有限运算序列
D. 调度方法
答案: C
( ) 26. 若x和y都是int型变量, x= 100,y=200 ,且有下面的程序片段:
Printf (" %d ",( x,y));
此程序段的输出结果是( )
A. 200
B. 100
C. 100 200
D. 输出格式符不够,输出不确定的值
答案: A
( ) 27. 若已定义x和y为double类型,则表达式x=1,y=x+3/2的结果是( )
A. 1
B. 2
C. 2.0
D. 2.5
答案: C
( ) 28. 有以下程序
#include<stdio.h>
main ()
{ int x[3][2]={0},i;
for ( i=0 ;i<3 ;i++) scanf (" %d",x[i] );
printf (" %3d%3d%3d\n",x[0][0],x[0][1],x[1][0] ;)
}
若运行时输入: 2 4 6<回车>,则输出结果为( )
A. 2 0 0
B. 2 0 4
C. 2 4 0
D. 2 4 6
答案: B
( ) 29. 设已有定义语句: float x ;,则以下对指针变量 p 进行定义且赋初值的语句中正确的是( )
A. float*p= 1024;
B. int *p=(float) x;
C. float p =&x;
D. float *p =&x;
答案: D
( ) 30. 计算机数据处理的对象是具有不同结构的各种数据,数据的基本单位是( )
A. 数据
B. 数据项
C. 数据元素
D. 数据类型
答案: C
( ) 31. 下列关于一维数组 a 的定义,正确的是( )
A. int a ( 5 );
B. int n=5,a[n];
C. int n;canf (" %d", &n ); int a[n];
D. #define IZ 5int a[IZ];
答案: D
( ) 32. 以下函数的类型是( )
fff (float x)
{ printf (" %d\n",x*x);
}
A. 与参数 x 的类型相同
B. void 类型
C. int 类型
D. 无法确定
答案: C
( ) 33. 下列程序的运行结果是( )
#include<stdio .h>
main ()
{ int a= 10 ,b=5,c=5,d=5;
int i=0,j=0 ,k=0;
for (; a >b ;++ b ) i ++;
while (a>++c)j ++;
do
{k++;
}
while ( a>d ++);
printf (" i =%d,j =%d ,k =%d\n", i,j ,k);
}
A. i=4,j=5 ,k=6
B. i=5,j=4 ,k=6
C. i=5,j=6 ,k=5
D. i=6,j=6 ,k=6
答案: B
( ) 34. 若变量已正确定义为int类型,要给a、b、c输入数据,正确的输入语句是( )
A. read ( a ,b,c);
B. scanf (" %d%d%d", a ,b,c);
C. scanf (" %c%c%c", &a,&b,&c);
D. scanf (" %d%d%d", &a,&b,&c);
答案: D
( ) 35. 下列语句正确的是( )
A. char s[5];s=" abc ";
B. char s[5]= "abcxyz ";
C. char s[ ]=" 12345 ";
D. char s[5]={ ′1′, ′2′, ′3′, ′4′, ′5′, ′\0′};
答案: C
( ) 36. 现有定义语句: int a=10,*p=&a ;,则不能使 a 的值增 1 的语句是( )
A. *p ++;
B. *p=*p+ 1;
C. ++*p;
D. *p+= 1;
答案: A
( ) 37. 已知 C 语言程序段如下:
struct sa
{int num;
char name[10];
float f;
}stu[3]={{5," li ming", 85.0},{6," liu liang", 91.5},{7,"wang xin", 100}} ; struct sa*p ;p=stu;
则值为 91.5 的表达式是( )
A. ( *p ). f
B. ( *++ p ). f
C. ( *p ++). f
D. ( p ++)->f
答案: B
( ) 38. 设整型变量a、b的值均为2 ,执行表达式“a=( b=a-b,b ) ”后, a的值是( )
A. -1
C. 1
D. 0
答案: D
( ) 39. 指针变量是指( )
A. 整型变量
B. 下标变量
C. 变量的地址
D. 存放变量地址的变量
答案: D
( ) 40. 已有变量定义和函数调用语句: int a=25 ;print_value ( &a );,下面函数的输出结果是( )
void print_value ( int *x)
{printf (" %d\n ",++*x);
}
A. 23
B. 24
C. 25
D. 26
答案: D
( ) 41. C语言中转义字符\n的含义为( )
A. 输出字符n
B. 回车换行
C. 换页
D. 左退一格
答案: B
( ) 42. 有以下程序:
#include<string.h>
#include<stdio.h>
typedef struct
{
char name[9]
char sex;
float score[2]
}STU;
Void f ( STU a )
{STU b={"Zhao ",' m',85.0,90.0};
int i;
strcpy ( a. name, b. name );
a. sex =b. sex ; for ( i=0 ;i<2 ;i++)
a. score[i] =b. score[i];
}
main ()
{STU c={"Qian ",' f',95.0,92.0};
f ( c);
printf (" %s ,%c ,%2.of,%2.0f\n", c. name,c. sex,c. score[0],c. score[1] ); }
程序的运行结果是( )
A. Qian,f,95,92
B. Qian ,m,85,90
C. Zhao,f,95,92
D. Zhao ,m,85,90
答案: A
( ) 43. 设有以下定义语句,则下面的叙述中不正确的是( )
struct ex {
33
int x;float y;char z;
} example;
A. struct 是结构类型的关键字
B. example 是结构类型名
C. x、y、z 都是结构类型成员名
D. struct ex 是结构类型
答案: B
( ) 44. 以下选项中,合法的标识符是( )
A. long
B. _2abc
C. 3dmax
D. char
答案: B
( ) 45. 以下程序的输出结果是( )
#include<stdio.h>
func ( int a,int b )
{ int c;
c=a +b;
return c;
}
main ()
{ int x=6,y =7,z=8 ,r;
r=func (( x --, y++, x+y), z --);
printf ( “%d\n” ,r);
}
A. 11
B. 20
C. 21
D. 31
答案: C
( ) 46. 下列语句正确的是( )
A. char s[5];s=" abc ";
B. char s[5]= "abcxyz ";
C. char s[]=" 12345 ";
D. char s[5]={ ′1', ′2′,' 3 ',' 4 ',' 5 ',' \0'};
答案: C
( ) 47. 设有数据定义语句“struct xyz { int x;float y;char z;} xyzl;” ,则下面的说法中错误的
是( )
A. struct xyz 可以看成一种数据类型符
B. xyz是用户选取的结构类型名称
C. xyzl 可以用来定义该结构变量
D. x 是结构类型的成员名
答案: C
( ) 48. 有以下程序:
#include<stdio .h>
main ()
{ int a[3][3]={{1,2},{3,4},{5,6}} ,i,j,s=0;
for ( i= 1 ;i<3 ;i++)
for (j=0;j<= i;j++)
s+=a[i][j];
printf (" %d\n", s );
}
该程序的输出结果是( )
A. 18
B. 19
C. 20
D. 21
答案: A
( ) 49. 执行语句“x=( a=3,b=a --); ”后, x、a、b的值依次为( )
A. 3、3、2
B. 2、3、2
C. 3、2、3
D. 2、3、3
答案: C
( ) 50. 已知 char sr[20];int i ;,从键盘向数组 sr 输入一个字符串的正确语句是( )
A. gets ( sr);
B. gets ( sr[20] );
C. for ( i=0 ;i<20 ;i++) scanf ( sr);
D. for ( i=0 ;i<20 ;i++) gets ( &sr)
答案: A
发表评论 取消回复