华清远见C补习测试题
{
char *str = NULL;
str = GetMemory();
printf(str);
}
(4)写出volatile的作用
(5)写出typedef和define的区别
(6)写出sizeof和strlen的区别
(7)用变量a给出下面的定义
a)一个指向整型数的指针
int* p ;
b)一个指向指针的的指针,它指向的指针是指向一个整型数
do
{
printf("%d",*s%10);
++s;
} while (*s);
}程序运行后的输入结果是
A)abc B)789 C)7890 D)979899
(7)有以下程序
#include <stdio.h>
main()
{
int i,j,m=1;
for(i=1;i<3;i++)
{
for(j=3;j>0;j--)
p1++;
p2--;
}
}
main( )
{
Char a[]="123456";
fun( a, strlen(a) );
puts(a);
}程序运行后的输出结果是
A)654321 B)116611 C)161616 D)123456
(15)有以下程序
void swap(int a, int b)
{
int t = a;
printf(”%d%d\n”,strlen(s1),strlen(s2) );
则输出结果是
A)5 5B)10 5C)10 7D)5 8
(12)有以下程序
#include <stdio.h>
int f(int m)
{
static int n = 0;
n += m;
return n;
}
main ( )
Int **p;
c)一个有10个整型数的数组
Int a[10]={0};
d)一个有10个指针的数组,该指针是指向一个整型数的
e)一个指针,该指针指向一个有10个整型数的数组
f)一个指向函数的指针,该函数有一个整型参数并返回一个整型数
g)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
fun(s);
printf(“%s\n”,s);
}程序运行后输入:abcdef<回车>,则输出结果是fabcde。
(9)某32位系统下, C程序,请计算sizeof的值.
char str[] = “/”;
char *p = str ;
char array[10] = {‘h’,’e’,’l’,’l’,’\0’,’o’};
C)char *s;s={“Olympic”}; D)char s[7];s={”Olympic”};
(9)以下关于return语句的叙述中正确的是
A)一个自定义函数中必须有一条return语句
B)一个自定义函数中可以根据不同情况设置多条return语句
C)定义成void类型的函数中可以有带返回值的return语句
Linux就业班C语言基础补习课程测验
日期:姓名分数
一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确的答案填在答题卷相应的位置。(每题2分,共30分)
(1)以下关于C语言的叙述中正确的是
A)C语言中的注释只能出现在语句或表达式的两边
B)C语言中的变量可以在使用之前的任何位置进行定义
{
if(i+j > 3)
continue;
m *= i*j;
}
}
printf(“m=%d\n”,m);
}
程序运行后的输出结果是
A)m=6 B) m=2 C) m=4 D) m=5
(8)下列语句组中,正确的是
A) char *s;s=”Olympic”;B)char s[7];s=”Olympic”;
(1)设a、b、c都是整型变量 如果a的值为1b的值为2则执行c=a++||b++语句后变量a、b的值分别是。
(2)unsigned char a = 255; char b=a; printf(“%d”,b);输出结果为:。
(3)请写出浮点型变量a与10比较是否相等的表达式:。
(4)int i=10, j=10, k=3; k*=i+j; k最后的值是40?
if(a<b)
{
if(a<c) k=a;
else k=c;
}
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
A) k=(a<b) ? a:b; k= (b<c) ? b:c;
B) k=(a<b) ? ((b<c) ? a:b) : ((b>c) ? b:c);
C) k=(a<b) ? ((a<c) ? a:c) : ((b<c) ? b:c);
(5)int a=1, b=2, c=a>=1||++b; b++; printf(“%d”, b);输出结果为:3。
(6)void main()
{
int x=1,y=2;
printf("%d,",x>y?y++:x++);
printf("%d,",x<=y?++y:++x);
printf("%d,%d",x,y);
四、编程题(共2题,共23分)
1、不使用库函数,完成strcat的功能(10分)
2、编写一个字符串查找函数,函数原型为:char *str_search(constchar *str1,constchar *str2),该函数实现在字符串str1中找出字符串str2第一次出现的位置。如果str2出现在str1中,则返回str2在str1中出现的首地址,如果在str1中没有与str2匹配的字符串则返回NULL。(13分)
C)C程序函数中定义的自动变量,系统不自动赋确定的初值
D)C程序函数的形参不可以说明为static型变量
(14)有以下程序
void fun(char *w, int m)
{
char s,*p1, *p2;
p1 = w;
p2 = w+m-1;
while (p1<p2)
{
s=*p1;
*p1=*p2;
*p2=s;
}上面程序输出的结果是:2,3,。
(7)以下程序段的输出结果是“red”,”green”,”blue”乱码。
m”,”blue”};
int i=0;
while (ch[i])
{
putchar (ch[i][0]);
i++;
}
}
(8)有以下程序
#include <sthio.h>
main()
{
int A=0,B=0,C=0;
C=(A-=A-5);
(A=B,B+=4);
printf(“%d, %d, %d\n”,A,B,C);
}程序运行后输出的结果是
A)0,4,5 B) 4,4,5 C) 4,4,4 D) 0,0,0
(4)有如下嵌套的if语句
void fun(char *str)
{
char temp;
int n,i;
n = strlen (str);
temp = str[n-1];
for (i=n-1; i>0; i--)
str[i] = str[i-1];
str[0] = temp;
}
main()
{
char s[50];
scanf(“%s”,s);
D) k=(a<b) ? a:b; k=(a<c) ? a:c;
(5)有以下程序
#include<stdio.h>
main()
{
int s=0,n;
for (n=0;n<3;n++)
{
switch(s)
{
case 0:
case 1:s+=1;
case 2:s+=2;break;
case 3:s+=3;
Default:s+=4;
}
printf("%d\n",s);
}
}程序运行后的结果是
A) 1,2,4 B) 1,3,6 C) 3,10,10 D) 3,10,14
(6)有以下程序(a,b,c的ascii码值分别为97,98,99)
#include <stdio.h>
main ( )
{
char *s={"abc"};
D)没有return语句的自定义函数在执行结束时不能返回到调用处
(10)设有定义double a[10], *s=a;,以下能够代表数组元素a[3]的是
A)(*s)[3]B)*(s+3)
C) *s[3]D)*s+3
(11)若有以下定义和语句
char s1[10]=”abcd!”,s2=”\n123\\”;
{
int n=0;
printf(“%d,”, f(++n));
printf(“%d\n”, f(n++));
}程序运行后的输出结果是