视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C笔试题(新)
2025-09-27 23:03:17 责编:小OO
文档
姓名:             日期:          

一,选择题

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的语句。下载本文

显示全文
专题