1、【
单选题
】
已定义以下函数
fun(char *p2, char *p1)
{ while((*p2=*p1)!='\0'){ p1++;p2++; } }
函数的功能是
[2分]
、
将p1所指字符串复制到p2所指内存空间
、
将p1所指字符串的地址赋给指针p2
、
对p1和p2两个指针所指字符串进行比较
、
检查p1和p2两个指针所指字符串中是否有'\0'
答案:
2、【
单选题
】
有以下程序
main()
{ int x=3, y=2, z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是
[2分]
答案:
3、【
单选题
】
若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为
[2分]
答案:
4、【
单选题
】
下列关于C语言数据文件的叙述中正确的是
[2分]
、
文件由ASCII码字符序列组成,C语言只能读写文本文件
、
文件由二进制数据序列组成,C语言只能读写二进制文件
、
文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
、
文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
答案:
5、【
单选题
】
有以下程序
main()
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++) p[i]=i+1;
printf("%d \n",a[1][2]);
}
程序运行后的输出结果是
[2分]
答案:
6、【
单选题
】
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct node
{ int data;
struct node *next;
} *p, *q, *r;
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是
[2分]
、
r->next=q; q->next=r->next; p->next=r;
、
q->next=r->next; p->next=r; r->next=q;
、
p->next=r; q->next=r->next; r->next=q;
、
q->next=r->next; r->next=q; p->next=r;
答案:
7、【
填空题
】
假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。若使用TYPE命令,则完整的命令为 【2
】 。
[每空2分]
答案:
["TYPE B.TXT >> A.TXT(英文字母大小写均可)"]
8、【
填空题
】
在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到 【4
】 文件夹中。
[每空2分]
答案:
["回收站(或"回收站")"]
9、【
填空题
】
在Windows环境下,为了进行"添加/删除程序"操作,首先打开 【5
】 ,然后双击其中的相应图标。
[每空2分]
答案:
["控制面板(或控制面板窗口)"]
10、【
填空题
】
以下程序运行后的输出结果是 【6
】 。
main()
{ int p=30;
printf("%d\n",(p/3>0 ? p/10 : p%3));
}
[每空2分]
答案:
["3"]
11、【
填空题
】
以下程序运行后的输出结果是 【7
】 。
main()
{ char m;
m='B'+32; printf("%c\n",m);
}
[每空2分]
答案:
["b"]
12、【
填空题
】
以下程序运行后的输出结果是 【8
】 。
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yes\n");
else printf("no\n");
}
[每空2分]
答案:
["yes"]
13、【
填空题
】
以下程序运行后的输出结果是 【9
】 。
main()
{ int i,m=0,n=0,k=0;
for(i=9; i<=11;i++)
switch(i/10)
{ case 0: m++;n++;break;
case 10: n++; break;
default: k++;n++;
}
printf("%d %d %d\n",m,n,k);
}
[每空2分]
答案:
["1 3 2"]
14、【
填空题
】
执行以下程序后,输出'#'号的个数是 【10
】 。
#include <stdio.h>
main()
{ int i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++) putchar('#');
}
[每空2分]
答案:
["6"]
16、【
填空题
】
以下程序运行后的输出结果是 【13
】
main()
{ int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
}
}
[每空2分]
答案:
["1 3 7 15"]
17、【
填空题
】
以下程序运行后的输出结果是 【15
】
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d ",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
[每空2分]
答案:
["30 25"]
18、【
填空题
】
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
【16
】 ( double,double);
main()
{ double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{ return(a>b ? a:b); }
[每空2分]
答案:
["double max (或 extern double max)"]
19、【
填空题
】
以下程序运行后输入:3,abcde<回车>,则输出结果是 【17
】
#include <string.h>
move(char *str, int n)
{ char temp; int i;
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-1];
str[0]=temp;
}
main()
{ char s[50]; int n, i, z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1; i<=n; i++) move(s, z);
printf("%s\n",s);
}
[每空2分]
答案:
["cdeab"]
20、【
填空题
】
以下程序运行后的输出结果是 【18
】
fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{ fun(6); }
[每空2分]
答案:
["1 3 6"]
21、【
填空题
】
已有定义如下:
struct node
{ int data;
struct node *next;
} *p;
以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。
p = (struct node *)malloc( 【19
】 );
[每空2分]
答案:
["sizeof(struct node) 或 4"]
22、【
填空题
】
以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。
#include <stdio.h>
#include <ctype.h>
main()
{ char s[80], d[80]; int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if( 【20
】 ) { d[j]=s[i]; j++; }
d[j]='\0';
puts(d);
}
[每空2分]
答案:
["s[i]>='0' && s[i]<='9' 或 isdigit(s[i]) 或 s[i]>=48 && s[i]<=57 或 s[i]<='9' && s[i]>='0' 或 '9'>=s[i] && '0'<=s[i] 或 '0'<=s[i] && '9'>=s[i] 或 s[i]<=57 && s[i]>=48 或 57>=s[i] && 48<=s[i] 或 48<=s[i] && 57>=s[i]"]
23、【
简答题】
以下程序运行后的输出结果是 【14】
main()
{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a[j][i]=0;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("\n");
}
}
[2分]
解析:
1 2 3
0 5 6
0 0 9