已有定义intk=2,*ptr1,*ptr2;且ptrl和Ptr2均已指向变量k,下面能正确执行的赋值语句是()
第1题:
已有定义“int k=2;int*ptr1, *ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。
A.k=*ptr1+*ptr2;
B.ptr2=k;
C.ptr1=ptr2;
D.K=*ptr1*(*ptr2);
第2题:
下面程序的输出结果是______。
main()
{ static char a[]="language",b[]="program";
char *ptrl=a,*ptr2=b;
int k
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
第3题:
已有定义“int k=2;int*ptr1,*ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。
A.k=*ptr1+*ptr2;
B.ptr2=k;
C.ptrl=ptr2;
D.K=*ptr1*(*ptr2);
第4题:
下面程序的输出结果是( )。 include<stdio.h> main() {static chara[]="zhao",b[]="juan"; char*ptr1=a,*ptr2=b; int k; for(k=0;k<4;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));}
第5题:
试题五(共 15分)
阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。
【说明】
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:
【C代码 1】是李工为了在嵌入式平台上开发一段可变参数函数,在X86 平台上实现的一个参数个数可变函数实例。
【C代码 2】是王工在编写软件时,自己编写的内存拷贝函数。
【C代码 3】是赵工编写的一段数据处理的程序,其中 fun()的含义为从已创建的一个单向链表中查找倒数第index 个节点。他的设计思路为:首先创建两个指针 ptrl,ptr2,并且都指向链表头,然后 ptrl向前走index 步,这样ptrl和 ptr2 之间就间隔 index 个节点,然后 ptrl和ptr2 同时向前步进,当 ptrl到达最后一个节点时,ptr2 就是倒数第 index 个节点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。
【C代码 1】
long sum(int i,...)
{
int *p,j;
long s = 0;
p=&i+1;
for(j=0;j<i;j++)
s+=p[j]
return s;
}
long Sum = sum(3,l,2,3);
【C代码 2】
static int pent;
……
void *MyMemcpy(void * dest, const void* src, int n )
{
char *pDest = (char *)dest;
char *pSrc = (char *)src;
for (int i=0;i<n; i++) {
*(pDest +i) = *(pSrc+i);
} return dest;
}
【C代码 3】
node *fun(node * head, int index)
{
node *ptr1,*ptr2;
int 1 = 0;
ptr1 = head;
ptr2 = head;
if( head == NULL || head->next == NULL)
return ptrl;
while(i<index)
{
(1)
if(ptrl == NULL)
return head;
i++;
}
while(ptrl->next != NULL)
{
ptrl = ptrl->next;
(2) ;
}
return (3) ;
}
node* ReverseList(node *head)
{
node *templ = NULL;
node *temp2 = NULL;
node *temp3 = NULL;
if((head->next == NULL) || (head == NULL))
{
return head;
} templ=head;
temp3= templ->next;
templ->next= NULL;
while(temp3->next!=NULL)
{
temp2 = temp3;
temp3= temp3->next;
(4) ;
templ=temp2;
}
temp3->next= templ;
retum (5)
}
【问题1】(3分)
执行【C代码 1】后,Sum的值应为多少?请用十进制表示。
【问题2】(7分)
请问【C代码2】中 static的作用是什么?const的作用是什么?王工自己编写的内存拷贝函数安全吗?
如存在缺陷,请指出缺陷在哪里。
【问题3】(5 分)
仔细阅读并分析【C代码 3】,填补其中的空(1)~(5)。
第6题:
在整型指针变量ptr1、ptr12的定义中,错误的是 ______。
A.int x, *ptr1, ptr2;
B.int*ptrl, x, *ptr2;
C.int x,*ptrl=&x,*ptr2;
D.int*ptr1, x,*ptr2=&x;
第7题:
若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是;
A.p=s;
B.p=k
C.p=s[0]
D.k=s;
第8题:
A.k=*p1+*p2
B.k=*p1*(*p2)
C.p2=k
D.p1=p2
第9题:
已有定义int k=2; int *ptrl, *ptr2,且ptr1和ptr2 均已指向变量k,下面不能正确执行的赋值语句是()
第10题:
int*p1,*p2,intk,则不能正确执行的语句是()。
第11题:
已有定义int k=2;int*ptr1,*ptr2;且ptr1、ptr2均已指向变量k,下面不能正确执行的赋值语句是()
第12题:
k =*ptr1+*ptr2;
ptr2 = k;
ptr1=ptr2;
k = *ptr1*(*ptr2);
第13题:
设pl和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )。
A.k=*pl+*p2
B.p2=k;
C.pl=p2;
D.k=*pl*(*p2.;
第14题:
下面函数的功能是______。 exchange(int*ptr1,*ptr2) { int*ptr; ptr=-ptr1; ptr1=ptr2; ptr2=ptr; }
A.交换*ptr1和*ptr2的值
B.无法改变*ptr1和*ptr2的值
C.可能造成系统故障,因为使用了空指针
D.交换*ptr1和*pb2的地址
第15题:
设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A.k=*p1+*p2
B.p2=k;
C.p1=p2;
D.k=*p1*(*p2);
第16题:
设有如下定义: int arr[]={6,7,8,9,10); int*ptr: ptr=arr; *(ptr2)=2; printf("%d,%d\n",*ptr,*(ptr2)): 则下列程序段的输出结果为( )。
A.8,10
B.6,8
C.7,9
D.6,2
第17题:
以下程序段的输出为( ) static char a[]="language",b[]="progratne"; char *ptr1,*ptr2; int k; ptr1=a;ptr2=b; for(k=0;k<7;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));
A.gae
B.ga
C.language
D.有语法错误
第18题:
若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是( )。
A.++i;
B.n1=(n2/(n3=2));
C.k=i=j;
D.a=b+c=2;
第19题:
设有程序段: intk=12: while(k=1)k=k-1: 则下列描述中正确的是( )。
A.while循环执行10次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
第20题:
设有程序段intk=10;while(k)k=k-1;则下面描述中正确的是()。
第21题:
当发电机PTR2高压熔断器熔断时,有何现象出现?
第22题:
有以下函数定义voidfun(intn){…};若以下选项中的变量都已经正确定义且赋值则对函数fun的正确调用语句是()
第23题:
当出现发电机PTR2高压熔断器熔断事故时,应如何进行处理?