最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C笔试题(新)

来源:动视网 责编:小OO 时间:2025-09-27 23:03:17
文档

C笔试题(新)

姓名:日期:一,选择题1,若有以下定义数组并初始化错误语句(A).chara[10]={'0','1','2','3','4','5','6','7','8','9'};A)scanf("%c",a[0]);B)scanf("%s",&a);C)printf("%c",a[3]);D)printf("%s",a);2,以下程序输出结果为()#include"stdio.h"main(){inti,b,k=0;for(i=1;i=0)k++;}printf("%d,%d\\n",k,b);}A.
推荐度:
导读姓名:日期:一,选择题1,若有以下定义数组并初始化错误语句(A).chara[10]={'0','1','2','3','4','5','6','7','8','9'};A)scanf("%c",a[0]);B)scanf("%s",&a);C)printf("%c",a[3]);D)printf("%s",a);2,以下程序输出结果为()#include"stdio.h"main(){inti,b,k=0;for(i=1;i=0)k++;}printf("%d,%d\\n",k,b);}A.
姓名:             日期:          

一,选择题

1,若有以下定义数组并初始化错误语句(  A   ).

char a[10]={'0','1','2','3','4','5','6','7','8','9'};

A)    scanf("%c",a[0]);

B)    scanf("%s",&a);

C)    printf("%c",a[3]);

D)    printf("%s",a);

2,以下程序输出结果为(     )

#include "stdio.h"

main()

{

int i,b,k=0;

     for(i=1;i<=5;i++)

b=i%2;    

while (b-->=0) k++;

}

printf("%d,%d\\n",k,b);

}

A. 3,-1       B. 8,-1         C. 3,0        D.  8,-2

3,根据if比较语句,顺序给出VAR的类型。(      )

if(!var)                        

if(var==NULL)                    

    if(var==0)                       

    if ((var >= - 0.00001) && (var <= 0.00001)  

    A. int       B. BOOL         C. float        D.  指针

4,以下正确的描述是(       )。

A)  continue语句的作用是结束整个循环的执行

B) 只能在循环体内和switch语句内使用break语句

C) 在循环体内使用break语句或continue语句的作用相同

D) 从多层循环嵌套中退出时,只能使用goto语句

E)    break 语句不能用于循环语句和switch语句外的任何其他语句

F)  在switch语句中使用break语句或continue语句的作用相同

G)    在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行

H)    在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

5,假定在32位机器上设有以下说明和定义:  

typedef union 

{

long i; 

int k[5];

char c;

} DATE;  

struct data

{

   int cat;

   DATE cow; 

double dog;

} too;  

 DATE max;   

则语句 printf("%d",sizeof(struct data)+sizeof(max));的执行结果是:(       )。

    A. 32       B. 48         C. 52        D.  

6,下面程序输出是(       )

#include

main ( )

 char *a="1234";    

 fun(a);

 printf("\\n");    

}

fun ( char *s)

{ char t;        

  if(*s) {t = *s++; fun(s); }

  if(t !='\\0') putchar( t ); 

}

A) 1234      B) 4321       C)1324       D) 4231

二,问答及找错

1,写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B) ((A) <= (B) (A) : (B))

2,关键字static的作用是什么?以下程序运行结果是?

在C语言中,关键字static有三个明显的作用:

1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被在声明它的模块的本地范围内使用。

大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数

据和代码范围的好处和重要性。

int sum(int a)

{

auto int c=0;

static int b=3;

c+=1;

b+=2;

return(a+b+c);

}

void main()

{

int I;

int a=2;

for(I=0;I<5;I++)

{

printf("%d,", sum(a));

}

}

答案: 8,10,12,14,16,

3,说明以下程序有什么问题

A程序:

int main()

{

char a;

char *str=&a;

strcpy(str,"hello");

printf(str);

return 0;

}

答;没有为str分配内存空间,将会发生异常

问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。

B程序:

#include

#include

void getmemory(char *p)

{

p=(char *) malloc(100);

}

int main( )

{

char *str=NULL;

getmemory(str);

strcpy(p,"hello world");

printf("%s/n",str);

free(str);

return 0;

}

答: 程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险

C程序:

char szstr[10];

strcpy(szstr,"01234567");

答;正常输出,长度不一样,会造成非法的OS,覆盖别的内容.

三,编程作业

1,下面代码的功能是把一个字符串倒序,如“abcd”倒序后变为“dcba”,请指出错误,修改完成代码。

#include"string.h"    

main()    

{    

char*src="hello,world";    

char* dest=NULL;    

int len=strlen(src);    

dest=(char*)malloc(len);      

char* d=dest;    

char* s=src[len];           

while(len--!=0)    

d++=s--;          

printf("%s",dest);   

return 0;    

}    

答:   

方法1:一共有4个错误;    

int main()   

{   

 char* src = "hello,world";   

 int len = strlen(src);   

 char* dest = (char*)malloc(len+1);//要为分配一个空间    char* d = dest;   

 char* s = &src[len-1];          //指向最后一个字符  

 while( len-- != 0 )   

  *d++=*s--;   

 *d = 0;           //尾部要加’\0’   

 printf("%sn",dest);    

free(dest);        // 使用完,应当释放空间,以免造成内存汇泄露 

dest = NULL;   //防止产生野指针 

return 0;  

 } 

2,按注释说明完成以下程序:

int  func1( double  fAmt) {

        /* 如果输入金额fAmt大于0,返回1 */

        /* 如果输入金额fAmt等于0,返回0 */

        /* 如果输入金额fAmt小于0,返回-1 */

}

/* 金额单位为人民币元,最小单位为0.01*/

3,根据以下数据表完成SQL:  

在数据库中有数据表 SSS ( aa  char(10),  bb  interger,  cc  decimal(16,2) ),请根据以下描述写出对应的SQL语句

① 向表SSS中增加字段 dd用于存放变长字符串,其最大长度为128

② 依据字段aa和bb给表SSS建立唯一索引

③ 在建立上述唯一索引时因为存在重复记录导致失败,请用一条SQL语句将该表中的重复记录查找出来 

4,根据以下数据表完成SQL: 

现有Customers表和Sales表的数据如下:

Customers

CustIdNameShpCityDiscount
499320AdaptoPortLand0.05
0003AAPortLand0.05
888402SeaworthAlbany0.04
Sales

SaleIdCustIdSaleMount
2341124993208000
2341138884026500
2341144993205900
23411500034500
要求:

①给出查询语句,描述:在客户表中查询名字为AA或Bolt的查询语句。

②给出删除操作,描述:在Sales表中删除SaleId为234115的语句。

文档

C笔试题(新)

姓名:日期:一,选择题1,若有以下定义数组并初始化错误语句(A).chara[10]={'0','1','2','3','4','5','6','7','8','9'};A)scanf("%c",a[0]);B)scanf("%s",&a);C)printf("%c",a[3]);D)printf("%s",a);2,以下程序输出结果为()#include"stdio.h"main(){inti,b,k=0;for(i=1;i=0)k++;}printf("%d,%d\\n",k,b);}A.
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top