国家二级(C语言)机试模拟试卷458
选择题
1.有以下程序段:
int a,b,c;
a=10;b=50;c=30;
if(a>b)
a=b,b=c;c=a;
printf(\\(A)
A. a=10 b=50 c=10
B. a=10 b=50 c=30
C. a=10 b=30 c=10
D. a=10 b=30 c=50
解析:因为a=10,b=50,所以a<b,if语句判断条件不成立,于是执行c=a,得到c=10,a和b的值不变。
2.若变量都已正确说明,则以下程序段( )。
#include
main()
{int a=8;
int b=6:
printf(a>b?\\(A)
A. 输出为:&&&a=8
B. 输出为:!!!b=8
C. 输出为:&&&a=8 !!!b=6
D. 全部错误
解析:本题考查printf的输出格式和条件表达式“?:”的使用。①printf函数输出时,“&&&%d\n”和“!!!%d\n”中的“&&&”和“!!!”都是直接输出。②条件表达式的基本格式为:a?b:c。其运算规则为:当a为非。时,整个表达式的值取b的值,当a为0时,整个表达式取c的值。printf函数中如果在格式说明符之前插入任何字符都将原样输出。本题中a>b为真,所以返回“&&&a=%d”。
3.有以下程序:
#include<stdio.h>
int b=2;
int fun(int*k)
{
b=*k+b;
return(b);
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++)
{
b=fun(&a[i])+b;
printf(\\(C)
A. 1012
B. 810
C. 1028
D. 1016
解析:因为b是全局变量,所以它的值在整个程序结束才会消失。for循环中,第一次循环,i=2,a[2]=3,所以fun(&a[i]=3+2=5,b=5,所以b=fun(&a[i])+b=5+5=10;第二次循环,b=10,然后fun(&a[i])代入a[3]=4,这时fun(&a[i]=10+4=14,所以b=fun(&a[i])+b=14+14=28。
4.以下叙述中正确的是( )。(C)
A. 如果p是指针变量,则&p是不合法的表达式
B. 如果p是指针变量,则*p表示变量p的地址值
C. 在对指针进行加、减算术运算时,数字1表示1个存储单元的长度
D. 如果p是指针变量,则*p+1和*(p+1)的效果是一样的
解析:考查指针的用法。指针进行算术运算的时候,数字“1”不再代表十进制整数“1”,而是指一个存储单元长度,选项c正确。指针变量存储的是其指向的变量的地址,其本身的地址仍用取地址运算符“&\\
5.若有以下语句:
typedef struetS
{int g;char h;}T;
以下叙述中正确的是( )。(B)
A. 可用S定义结构体变量
B. 可用T定义结构体变量
C. S是struct类型的变量
D. T是struct S类型的变量
解析:本题考查typedef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。
6.在下述程序中,判断i>i共执行的次数是( )。
main()
{int i=0,j=10,k=2,s=0;
for(;;)
{ i+=k;
if(i>j){printf(\\(D)
A. 4
B. 7
C. 5
D. 6
解析:分析程序,i+=k;使得i的值每次增加2然后再和j进行了比较看i>j是否成立,i的变化过程为:i=2,i=4,i=6。i=8,i=10,i=12.此时i>j成立,所以判断i>j共执行的次数为6次。
7.已知一个文件中存放若干工人档案记录,其数据结构如下:
stmct a
{ char number[100];
int age;
float p[6];
};
定义一个数组:struct a b[10];
假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是( )。(B)
A. fread(b,sizeof(struct a),10,fp);
B. for(i=0;i<10;i++)
fread(b[i],sizeof(struct a),1,fp);
C. for(i=0;i<10;i++)
fread(b+i,sizeof(struct a),1,fp);
D. for(i=0;i<5;i+=2)
fread(b+i,sezeof(struct a),2,fp);
解析:数据块输入/输出函数的调用格式为:ffead(buffer,size,count,fp),其中:“buffer”是一个指针,对于fread来说,它是读入数据的存放地址。“size”是要读写的字节数; “count”是要进行读写多少个size字节的数据项; “fp”是指文件型指针。选项B中b[i]是一个数组,不是指针,需改为&b[i]。
8.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。(D)
A. 数据与程序独立存放
B. 不同的数据被存放在不同的文件中
C. 不同的数据只能被对应的应用程序所使用
D. 以上三种说法都不对
解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。所以选项A,选项B和选项C都不正确。
9.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( )。(C)
A. 记录
B. 行
C. 属性
D. 元组
解析:自然连接是一种特殊的等值连接,它满足下面的条件:①两关系间有公共域;②通过公共域的等值进行连接,故C选项正确。
10.下列语句组中,不正确的是( )。
C
解析:S是一个字符指针变量,s代表其地址,C将字符串赋给地址,因此选项C错误。
11.有以下程序:
void ss(char*s,char 0
{while(*s)
{if(*s=t)*s=t-’a’+’A’;
s++;}
}
main()
{char str1[10
本文档预览:3600字符,共16777字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载